Skip to content

Commit f63ca67

Browse files
authored
Migrate jetpack_compose example to bzlmod and update it (#1393)
* Migrate jetpack_compose example to bzlmod and update it * Fix NDK path * Fixes
1 parent 8cdc109 commit f63ca67

File tree

9 files changed

+108
-208
lines changed

9 files changed

+108
-208
lines changed

.bazelci/presubmit.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ tasks:
3737
test_flags: ${{ integration_shard_flags }}
3838
test_targets:
3939
- //examples:all
40+
environment:
41+
ANDROID_NDK_HOME: /opt/android-ndk-r25b
4042
rbe_ubuntu2404:
4143
test_targets:
4244
- "--"

examples/jetpack_compose/.bazelrc

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,8 @@ build --define=android_dexmerger_tool=d8_dexmerger
55
build --define=android_incremental_dexing_tool=d8_dexbuilder
66
build --define=android_standalone_dexing_tool=d8_compat_dx
77

8-
common --enable_workspace=true --enable_bzlmod=false
9-
common --noincompatible_enable_android_toolchain_resolution
108
build --platform_mappings=platform_mappings
11-
build --fat_apk_cpu arm64-v8a
12-
# Uncomment the below lines to build for x86
13-
# build --fat_apk_cpu x86_64
14-
build --android_crosstool_top=@androidndk//:toolchain
15-
build --@rules_kotlin//kotlin/settings:jvm_emit_jdeps=False
9+
build --@rules_kotlin//kotlin/settings:jvm_emit_jdeps=False
10+
11+
common --java_runtime_version=remotejdk_17
12+
common --tool_java_runtime_version=remotejdk_17

examples/jetpack_compose/BUILD

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ default_java_toolchain(
1010

1111
define_kt_toolchain(
1212
name = "kotlin_toolchain",
13-
jvm_target = "1.8",
13+
jvm_target = "11",
1414
)
1515

1616
# Define the compose compiler plugin
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
module(name = "jetpack_compose")
2+
3+
bazel_dep(name = "platforms", version = "0.0.11")
4+
bazel_dep(name = "rules_java", version = "8.14.0")
5+
bazel_dep(name = "rules_kotlin", version = "1.9.5")
6+
local_path_override(
7+
module_name = "rules_kotlin",
8+
path = "../..",
9+
)
10+
11+
bazel_dep(name = "bazel_skylib", version = "1.7.1")
12+
bazel_dep(name = "rules_jvm_external", version = "6.7")
13+
bazel_dep(name = "rules_shell", version = "0.4.1")
14+
bazel_dep(name = "rules_android", version = "0.6.6")
15+
16+
register_toolchains(
17+
"@rules_android//toolchains/android:android_default_toolchain",
18+
"@rules_android//toolchains/android_sdk:android_sdk_tools",
19+
)
20+
21+
android_sdk_repository_extension = use_extension("@rules_android//rules/android_sdk_repository:rule.bzl", "android_sdk_repository_extension")
22+
use_repo(android_sdk_repository_extension, "androidsdk")
23+
24+
register_toolchains("@androidsdk//:sdk-toolchain", "@androidsdk//:all")
25+
26+
bazel_dep(name = "rules_android_ndk", version = "0.1.3")
27+
28+
android_ndk_repository_extension = use_extension("@rules_android_ndk//:extension.bzl", "android_ndk_repository_extension")
29+
use_repo(android_ndk_repository_extension, "androidndk")
30+
31+
register_toolchains("@androidndk//:all")
32+
33+
bazel_dep(name = "rules_robolectric", version = "4.14.1.2", repo_name = "robolectric")
34+
35+
maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven")
36+
maven.install(
37+
name = "maven_rules_kotlin_example",
38+
aar_import_bzl_label = "@rules_android//rules:rules.bzl",
39+
artifacts = [
40+
"org.jetbrains.kotlin:kotlin-compose-compiler-plugin-embeddable:2.1.20",
41+
"androidx.core:core-ktx:1.15.0",
42+
"androidx.appcompat:appcompat:1.7.0",
43+
"androidx.activity:activity-compose:1.7.0",
44+
"androidx.collection:collection:1.5.0-alpha06",
45+
"androidx.lifecycle:lifecycle-runtime:2.6.1",
46+
"androidx.lifecycle:lifecycle-common:2.6.1",
47+
"androidx.compose.material:material:1.7.6",
48+
"androidx.compose.ui:ui:1.7.6",
49+
"androidx.compose.ui:ui-tooling:1.7.6",
50+
"androidx.compose.runtime:runtime:1.7.6",
51+
],
52+
fetch_sources = True,
53+
lock_file = "//:maven_install.json",
54+
repositories = [
55+
"https://maven.google.com",
56+
"https://repo1.maven.org/maven2",
57+
],
58+
resolver = "maven",
59+
use_starlark_android_rules = True,
60+
)
61+
use_repo(maven, "maven_rules_kotlin_example")

examples/jetpack_compose/README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,6 @@ INFO: Elapsed time: 0.771s, Critical Path: 0.00s
1717
INFO: 1 process: 1 internal.
1818
INFO: Build completed successfully, 1 total action
1919
```
20+
21+
## Installing
22+
`$ bazel mobile-install //app:compose_example_app --android_platforms=//:arm64-v8a -- --launch_activity=cm.ben.android.bazel.compose.example.ui.MainActivity`

examples/jetpack_compose/WORKSPACE

Lines changed: 0 additions & 122 deletions
This file was deleted.

examples/jetpack_compose/app/AndroidManifest.xml

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,19 @@
22
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
33
package="cm.ben.android.bazel.compose.example">
44

5-
<uses-sdk android:minSdkVersion="24" android:targetSdkVersion="29" />
5+
<uses-sdk android:minSdkVersion="24" android:targetSdkVersion="36" />
6+
7+
<application
8+
android:label="Bazel Jetpack Compose Example"
9+
android:theme="@style/Theme.AppCompat.Light.NoActionBar">
10+
<activity
11+
android:name="cm.ben.android.bazel.compose.example.ui.MainActivity"
12+
android:label="Bazel Jetpack Compose Example"
13+
android:exported="true">
14+
<intent-filter>
15+
<action android:name="android.intent.action.MAIN" />
16+
<category android:name="android.intent.category.LAUNCHER" />
17+
</intent-filter>
18+
</activity>
19+
</application>
620
</manifest>

examples/jetpack_compose/compose-ui/AndroidManifest.xml

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,24 +5,19 @@
55

66
<uses-sdk
77
android:minSdkVersion="24"
8-
android:targetSdkVersion="29" />
8+
android:targetSdkVersion="36" />
99

1010
<application
1111
android:label="Bazel Jetpack Compose Example"
1212
android:theme="@style/Theme.AppCompat.Light.NoActionBar">
1313
<activity
1414
android:name=".MainActivity"
15-
android:label="Bazel Jetpack Compose Example">
15+
android:label="Bazel Jetpack Compose Example"
16+
android:exported="true">
1617
<intent-filter>
1718
<action android:name="android.intent.action.MAIN" />
1819
<category android:name="android.intent.category.LAUNCHER" />
1920
</intent-filter>
2021
</activity>
21-
22-
<!-- Resolve a conflict issue while building with Bazel. -->
23-
<provider
24-
android:name="androidx.startup.InitializationProvider"
25-
android:authorities="${applicationId}.androidx-startup"
26-
tools:node="remove" />
2722
</application>
2823
</manifest>

0 commit comments

Comments
 (0)