From 7ca7179197ea6e9967d95f03cf3e5e52f8d46c28 Mon Sep 17 00:00:00 2001 From: James Rich <2199651+jamesarich@users.noreply.github.com> Date: Sun, 12 Apr 2026 09:45:11 -0500 Subject: [PATCH] build: migrate Compose dependencies to Compose Multiplatform (#5084) --- app/build.gradle.kts | 6 +++--- .../src/main/kotlin/KmpFeatureConventionPlugin.kt | 6 +++--- .../main/kotlin/org/meshtastic/buildlogic/AndroidCompose.kt | 5 ++--- core/barcode/build.gradle.kts | 6 +++--- feature/intro/build.gradle.kts | 1 - feature/map/build.gradle.kts | 1 - feature/widget/build.gradle.kts | 2 +- gradle/libs.versions.toml | 2 +- 8 files changed, 13 insertions(+), 16 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 77302534e..ed9f3a766 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -243,9 +243,9 @@ dependencies { implementation(libs.jetbrains.compose.material3.adaptive.layout) implementation(libs.jetbrains.compose.material3.adaptive.navigation) implementation(libs.material) - implementation(libs.androidx.compose.material3) - implementation(libs.androidx.compose.ui.tooling.preview) - implementation(libs.androidx.compose.ui.text) + implementation(libs.compose.multiplatform.material3) + implementation(libs.compose.multiplatform.ui.tooling.preview) + implementation(libs.compose.multiplatform.ui) implementation(libs.androidx.glance.appwidget) implementation(libs.androidx.glance.appwidget.preview) implementation(libs.androidx.glance.material3) diff --git a/build-logic/convention/src/main/kotlin/KmpFeatureConventionPlugin.kt b/build-logic/convention/src/main/kotlin/KmpFeatureConventionPlugin.kt index 4d02a630a..33278df93 100644 --- a/build-logic/convention/src/main/kotlin/KmpFeatureConventionPlugin.kt +++ b/build-logic/convention/src/main/kotlin/KmpFeatureConventionPlugin.kt @@ -62,10 +62,10 @@ class KmpFeatureConventionPlugin : Plugin { // Common Android Compose dependencies implementation(libs.library("accompanist-permissions")) implementation(libs.library("androidx-activity-compose")) - implementation(libs.library("androidx-compose-material3")) + implementation(libs.library("compose-multiplatform-material3")) - implementation(libs.library("androidx-compose-ui-text")) - implementation(libs.library("androidx-compose-ui-tooling-preview")) + implementation(libs.library("compose-multiplatform-ui")) + implementation(libs.library("compose-multiplatform-ui-tooling-preview")) } sourceSets.getByName("commonTest").dependencies { implementation(project(":core:testing")) } diff --git a/build-logic/convention/src/main/kotlin/org/meshtastic/buildlogic/AndroidCompose.kt b/build-logic/convention/src/main/kotlin/org/meshtastic/buildlogic/AndroidCompose.kt index 40cbe83fa..bd620f6a5 100644 --- a/build-logic/convention/src/main/kotlin/org/meshtastic/buildlogic/AndroidCompose.kt +++ b/build-logic/convention/src/main/kotlin/org/meshtastic/buildlogic/AndroidCompose.kt @@ -31,11 +31,10 @@ internal fun Project.configureAndroidCompose(commonExtension: CommonExtension) { if (hasAndroidTest) { "androidTestImplementation"(platform(bom)) } - "debugImplementation"(libs.library("androidx-compose-ui-tooling")) - "implementation"(libs.library("androidx-compose-runtime")) + "debugImplementation"(libs.library("compose-multiplatform-ui-tooling")) + "implementation"(libs.library("compose-multiplatform-runtime")) "runtimeOnly"(libs.library("androidx-compose-runtime-tracing")) - "implementation"(libs.library("compose-multiplatform-runtime")) "implementation"(libs.library("compose-multiplatform-resources")) // Add Espresso explicitly to avoid version mismatch issues on newer Android versions diff --git a/core/barcode/build.gradle.kts b/core/barcode/build.gradle.kts index c2533dd3c..c8dbc078e 100644 --- a/core/barcode/build.gradle.kts +++ b/core/barcode/build.gradle.kts @@ -33,9 +33,9 @@ dependencies { implementation(projects.core.ui) implementation(libs.androidx.activity.compose) - implementation(libs.androidx.compose.material3) - implementation(libs.androidx.compose.runtime) - implementation(libs.androidx.compose.ui) + implementation(libs.compose.multiplatform.material3) + implementation(libs.compose.multiplatform.runtime) + implementation(libs.compose.multiplatform.ui) implementation(libs.accompanist.permissions) implementation(libs.kermit) diff --git a/feature/intro/build.gradle.kts b/feature/intro/build.gradle.kts index 242c75bcc..1dc180a42 100644 --- a/feature/intro/build.gradle.kts +++ b/feature/intro/build.gradle.kts @@ -42,7 +42,6 @@ kotlin { val androidHostTest by getting { dependencies { implementation(libs.junit) - implementation(project.dependencies.platform(libs.androidx.compose.bom)) implementation(libs.kotlinx.coroutines.test) } } diff --git a/feature/map/build.gradle.kts b/feature/map/build.gradle.kts index fff9fe21b..ebd5ec2c9 100644 --- a/feature/map/build.gradle.kts +++ b/feature/map/build.gradle.kts @@ -47,7 +47,6 @@ kotlin { val androidHostTest by getting { dependencies { implementation(libs.junit) - implementation(project.dependencies.platform(libs.androidx.compose.bom)) implementation(libs.kotlinx.coroutines.test) } } diff --git a/feature/widget/build.gradle.kts b/feature/widget/build.gradle.kts index a11e4ee7d..8d2045469 100644 --- a/feature/widget/build.gradle.kts +++ b/feature/widget/build.gradle.kts @@ -33,7 +33,7 @@ dependencies { implementation(projects.core.resources) implementation(projects.core.repository) - implementation(libs.androidx.compose.ui) // LocalConfiguration, LocalDensity + implementation(libs.compose.multiplatform.ui) // LocalConfiguration, LocalDensity implementation(libs.androidx.glance.appwidget) implementation(libs.androidx.glance.material3) implementation(libs.androidx.glance.preview) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b11700f95..05bfabf1c 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -119,7 +119,7 @@ androidx-work-runtime-ktx = { module = "androidx.work:work-runtime-ktx", version androidx-work-testing = { module = "androidx.work:work-testing", version = "2.11.2" } # AndroidX Compose -androidx-compose-bom = { module = "androidx.compose:compose-bom", version = "2026.03.01" } +androidx-compose-bom = { module = "androidx.compose:compose-bom-alpha", version = "2026.03.01" } androidx-compose-material-iconsExtended = { module = "androidx.compose.material:material-icons-extended" } # Only used by deprecated mesh_service_example — remove when that module is deleted androidx-compose-material3 = { module = "androidx.compose.material3:material3" } androidx-compose-runtime = { module = "androidx.compose.runtime:runtime" }