@@ -8,44 +8,57 @@ http_archive(
8
8
url = "https://github.com/bazelbuild/rules_kotlin/releases/download/v1.9.5/rules_kotlin-v1.9.5.tar.gz" ,
9
9
)
10
10
11
- load ("@rules_kotlin//kotlin:repositories.bzl" , "kotlin_repositories" , "kotlinc_version" , "versions" )
12
-
13
- KOTLINC_RELEASE = versions .KOTLIN_CURRENT_COMPILER_RELEASE
14
-
15
- kotlin_repositories (
16
- compiler_release = kotlinc_version (
17
- release = "2.0.0" ,
18
- sha256 = "ef578730976154fd2c5968d75af8c2703b3de84a78dffe913f670326e149da3b" ,
19
- ) if KOTLINC_RELEASE .version == "1.9.22" else kotlinc_version (
20
- release = KOTLINC_RELEASE .version ,
21
- sha256 = KOTLINC_RELEASE .sha256 ,
22
- ),
11
+ load ("@rules_kotlin//kotlin:repositories.bzl" , "kotlin_repositories" , "versions" )
12
+
13
+ http_archive (
14
+ name = "rules_jvm_external" ,
15
+ sha256 = versions .RULES_JVM_EXTERNAL .sha256 ,
16
+ strip_prefix = "rules_jvm_external-%s" % versions .RULES_JVM_EXTERNAL .version ,
17
+ urls = [url .format (version = versions .RULES_JVM_EXTERNAL .version ) for url in versions .RULES_JVM_EXTERNAL .url_templates ],
23
18
)
24
19
25
- register_toolchains ("//:kotlin_toolchain" )
20
+ http_archive (
21
+ name = "rules_android" ,
22
+ sha256 = versions .RULES_ANDROID .sha256 ,
23
+ strip_prefix = versions .RULES_ANDROID .strip_prefix_template .format (version = versions .RULES_ANDROID .version ),
24
+ urls = [url .format (version = versions .RULES_ANDROID .version ) for url in versions .RULES_ANDROID .url_templates ],
25
+ )
26
26
27
- ## JVM External
27
+ http_archive (
28
+ name = "robolectric" ,
29
+ sha256 = "b2d2164bae80fcfbdd078eb2f0935ba06557402b8c814928d9e3bec7358e2b7b" ,
30
+ strip_prefix = "robolectric-bazel-4.14.1.2" ,
31
+ urls = ["https://github.com/robolectric/robolectric-bazel/releases/download/4.14.1.2/robolectric-bazel-4.14.1.2.tar.gz" ],
32
+ )
28
33
29
- versions . use_repository (
30
- name = "io_bazel_stardoc " ,
31
- rule = http_archive ,
32
- version = versions .IO_BAZEL_STARDOC ,
34
+ http_archive (
35
+ name = "bazel_skylib " ,
36
+ sha256 = versions . BAZEL_SKYLIB . sha256 ,
37
+ urls = [ url . format ( version = versions .BAZEL_SKYLIB . version ) for url in versions . BAZEL_SKYLIB . url_templates ] ,
33
38
)
34
39
35
- RULES_JVM_EXTERNAL_TAG = "6.6"
40
+ # Android rules dependencies
41
+ load ("@rules_android//:prereqs.bzl" , "rules_android_prereqs" )
36
42
37
- RULES_JVM_EXTERNAL_SHA = "3afe5195069bd379373528899c03a3072f568d33bd96fe037bd43b1f590535e7"
43
+ rules_android_prereqs ()
38
44
39
- http_archive (
40
- name = "rules_jvm_external" ,
41
- sha256 = RULES_JVM_EXTERNAL_SHA ,
42
- strip_prefix = "rules_jvm_external-%s" % RULES_JVM_EXTERNAL_TAG ,
43
- url = "https://github.com/bazelbuild/rules_jvm_external/releases/download/%s/rules_jvm_external-%s.tar.gz" % (
44
- RULES_JVM_EXTERNAL_TAG ,
45
- RULES_JVM_EXTERNAL_TAG ,
46
- ),
47
- )
45
+ ##### rules_java setup for rules_android #####
46
+ load ("@rules_java//java:rules_java_deps.bzl" , "rules_java_dependencies" )
47
+
48
+ rules_java_dependencies ()
49
+
50
+ # note that the following line is what is minimally required from protobuf for the java rules
51
+ # consider using the protobuf_deps() public API from @com_google_protobuf//:protobuf_deps.bzl
52
+ load ("@com_google_protobuf//bazel/private:proto_bazel_features.bzl" , "proto_bazel_features" ) # buildifier: disable=bzl-visibility
53
+
54
+ proto_bazel_features (name = "proto_bazel_features" )
55
+
56
+ # register toolchains
57
+ load ("@rules_java//java:repositories.bzl" , "rules_java_toolchains" )
58
+
59
+ rules_java_toolchains ()
48
60
61
+ ##### rules_jvm_external setup for rules_android #####
49
62
load ("@rules_jvm_external//:repositories.bzl" , "rules_jvm_external_deps" )
50
63
51
64
rules_jvm_external_deps ()
@@ -54,19 +67,34 @@ load("@rules_jvm_external//:setup.bzl", "rules_jvm_external_setup")
54
67
55
68
rules_jvm_external_setup ()
56
69
57
- KOTLIN_TO_COMPOSE = {
58
- "1.9.22" : [
59
- "org.jetbrains.kotlin:kotlin-compose-compiler-plugin-embeddable:2.0.0" ,
60
- "androidx.core:core-ktx:1.7.0" ,
61
- "androidx.appcompat:appcompat:1.4.1" ,
62
- "androidx.activity:activity-compose:1.3.0" ,
63
- "androidx.compose.material:material:1.2.1" ,
64
- "androidx.compose.ui:ui:1.2.1" ,
65
- "androidx.compose.ui:ui-tooling:1.2.1" ,
66
- "androidx.compose.runtime:runtime:1.2.1" ,
67
- ],
68
- "2.1.0" : [
69
- "org.jetbrains.kotlin:kotlin-compose-compiler-plugin-embeddable:2.1.0" ,
70
+ ##### rules_android setup #####
71
+ load ("@rules_android//:defs.bzl" , "rules_android_workspace" )
72
+
73
+ rules_android_workspace ()
74
+
75
+ # Android SDK setup
76
+ load ("@rules_android//rules:rules.bzl" , "android_sdk_repository" )
77
+
78
+ android_sdk_repository (name = "androidsdk" )
79
+
80
+ register_toolchains (
81
+ "@rules_android//toolchains/android:android_default_toolchain" ,
82
+ "@rules_android//toolchains/android_sdk:android_sdk_tools" ,
83
+ )
84
+
85
+ kotlin_repositories ()
86
+
87
+ load ("@rules_kotlin//kotlin:core.bzl" , "kt_register_toolchains" )
88
+
89
+ kt_register_toolchains ()
90
+
91
+ load ("@rules_jvm_external//:defs.bzl" , "maven_install" )
92
+
93
+ maven_install (
94
+ name = "maven_rules_kotlin_example" ,
95
+ aar_import_bzl_label = "@rules_android//rules:rules.bzl" ,
96
+ artifacts = [
97
+ "org.jetbrains.kotlin:kotlin-compose-compiler-plugin-embeddable:2.1.20" ,
70
98
"androidx.core:core-ktx:1.15.0" ,
71
99
"androidx.appcompat:appcompat:1.7.0" ,
72
100
"androidx.activity:activity-compose:1.7.0" ,
@@ -76,49 +104,20 @@ KOTLIN_TO_COMPOSE = {
76
104
"androidx.compose.ui:ui-tooling:1.7.6" ,
77
105
"androidx.compose.runtime:runtime:1.7.6" ,
78
106
],
79
- }
80
-
81
- load ("@rules_jvm_external//:defs.bzl" , "maven_install" )
82
-
83
- maven_install (
84
- name = "maven" ,
85
- artifacts = KOTLIN_TO_COMPOSE [KOTLINC_RELEASE .version ],
86
107
fetch_sources = True ,
87
- maven_install_json = "//:maven_install-%s .json" % KOTLINC_RELEASE . version ,
108
+ maven_install_json = "//:maven_install.json" ,
88
109
repositories = [
89
110
"https://maven.google.com" ,
90
111
"https://repo1.maven.org/maven2" ,
91
112
],
92
- resolver = "coursier" if KOTLINC_RELEASE .version == "1.9.22" else "maven" ,
113
+ resolver = "maven" ,
114
+ use_starlark_android_rules = True ,
93
115
)
94
116
95
117
load ("@maven//:defs.bzl" , "pinned_maven_install" )
96
118
97
119
pinned_maven_install ()
98
120
99
- http_archive (
100
- name = "bazel_skylib" ,
101
- sha256 = versions .SKYLIB_SHA ,
102
- urls = ["https://github.com/bazelbuild/bazel-skylib/releases/download/%s/bazel-skylib-%s.tar.gz" % (
103
- versions .SKYLIB_VERSION ,
104
- versions .SKYLIB_VERSION ,
105
- )],
106
- )
107
-
108
- ## Android
109
-
110
- http_archive (
111
- name = "rules_android" ,
112
- sha256 = versions .ANDROID .SHA ,
113
- strip_prefix = "rules_android-%s" % versions .ANDROID .VERSION ,
114
- urls = ["https://github.com/bazelbuild/rules_android/archive/v%s.zip" % versions .ANDROID .VERSION ],
115
- )
116
-
117
- load ("@rules_android//android:rules.bzl" , "android_sdk_repository" )
121
+ load ("@robolectric//bazel:robolectric.bzl" , "robolectric_repositories" )
118
122
119
- android_sdk_repository (name = "androidsdk" )
120
-
121
- android_ndk_repository (
122
- name = "androidndk" ,
123
- api_level = 21 ,
124
- )
123
+ robolectric_repositories ()
0 commit comments