--- a/buildSrc/src/main/kotlin/conventions/android.kt Tue Sep 16 15:21:10 2025 -0400
+++ b/buildSrc/src/main/kotlin/conventions/android.kt Mon May 26 17:49:20 2025 -0400
@@ -21,11 +21,26 @@
*/
package com.geekorum.build.conventions
+import com.android.build.api.dsl.KotlinMultiplatformAndroidLibraryTarget
import com.android.build.gradle.BaseExtension
import org.gradle.api.Project
+import org.gradle.api.plugins.ExtensionAware
import org.gradle.kotlin.dsl.findByType
+import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
+
fun Project.conventionForAndroidProject() {
+ // new androidLibrary in multiplatform project
+ extensions.findByType<KotlinMultiplatformExtension>()?.apply {
+ (this as ExtensionAware).extensions.findByType<KotlinMultiplatformAndroidLibraryTarget>()?.apply {
+ compileSdk = 36
+ minSdk = 28
+ aarMetadata {
+ minCompileSdk = 28
+ }
+ }
+ }
+
extensions.findByType<BaseExtension>()?.apply {
setCompileSdkVersion(36)
defaultConfig {
--- a/buildSrc/src/main/kotlin/conventions/mpp-library-with-android.gradle.kts Tue Sep 16 15:21:10 2025 -0400
+++ b/buildSrc/src/main/kotlin/conventions/mpp-library-with-android.gradle.kts Mon May 26 17:49:20 2025 -0400
@@ -23,7 +23,7 @@
plugins {
id("com.geekorum.build.conventions.mpp-library")
- id("com.android.library")
+ id("com.android.kotlin.multiplatform.library")
}
conventionForAndroidProject()
--- a/core/build.gradle.kts Tue Sep 16 15:21:10 2025 -0400
+++ b/core/build.gradle.kts Mon May 26 17:49:20 2025 -0400
@@ -28,7 +28,11 @@
}
kotlin {
- androidTarget()
+ androidLibrary {
+ namespace = "com.geekorum.aboutoss.core"
+ withHostTestBuilder { }
+ withDeviceTestBuilder { }
+ }
jvm("desktop")
@@ -49,9 +53,21 @@
api(libs.kotlinx.coroutines)
implementation(libs.kotlinx.serialization.json)
}
+ named("androidHostTest") {
+ dependencies {
+ implementation(libs.junit)
+ }
+ }
+ named("androidDeviceTest") {
+ dependencies {
+ implementation(libs.androidx.test.ext.junit)
+ implementation(libs.espresso.core)
+ }
+ }
}
}
+/*
android {
namespace = "com.geekorum.aboutoss.core"
@@ -77,13 +93,8 @@
}
}
}
-
-dependencies {
+*/
- testImplementation(libs.junit)
- androidTestImplementation(libs.androidx.test.ext.junit)
- androidTestImplementation(libs.espresso.core)
-}
mavenPublishing {
coordinates(groupId = group.toString(), name, version.toString())
--- a/ui/common/build.gradle.kts Tue Sep 16 15:21:10 2025 -0400
+++ b/ui/common/build.gradle.kts Mon May 26 17:49:20 2025 -0400
@@ -29,7 +29,11 @@
}
kotlin {
- androidTarget()
+ androidLibrary {
+ namespace = "com.geekorum.aboutoss.ui.common"
+ withHostTestBuilder { }
+ withDeviceTestBuilder { }
+ }
jvm("desktop")
@@ -51,12 +55,25 @@
api(libs.jetbrains.androidx.lifecycle.viewmodel)
api(compose.components.resources)
implementation(compose.runtime)
+ api(compose.ui)
}
androidMain.dependencies {
api(libs.androidx.activity)
implementation(libs.androidx.activity.compose)
}
+
+ named("androidHostTest") {
+ dependencies {
+ implementation(libs.junit)
+ }
+ }
+ named("androidDeviceTest") {
+ dependencies {
+ implementation(libs.androidx.test.ext.junit)
+ implementation(libs.espresso.core)
+ }
+ }
}
}
@@ -64,6 +81,7 @@
publicResClass = true
}
+/*
android {
namespace = "com.geekorum.aboutoss.ui.common"
@@ -89,11 +107,9 @@
}
}
}
+*/
dependencies {
- testImplementation(libs.junit)
- androidTestImplementation(libs.androidx.test.ext.junit)
- androidTestImplementation(libs.espresso.core)
"androidMainApi"(libs.geekdroid) {
exclude("androidx.compose.material3")
}
--- a/ui/material2/build.gradle.kts Tue Sep 16 15:21:10 2025 -0400
+++ b/ui/material2/build.gradle.kts Mon May 26 17:49:20 2025 -0400
@@ -31,7 +31,11 @@
}
kotlin {
- androidTarget()
+ androidLibrary {
+ namespace = "com.geekorum.aboutoss.ui.material"
+ withHostTestBuilder { }
+ withDeviceTestBuilder { }
+ }
jvm("desktop")
@@ -62,10 +66,23 @@
implementation(dependencies.platform(libs.androidx.compose.bom))
implementation(libs.androidx.activity.compose)
}
+
+ named("androidHostTest") {
+ dependencies {
+ implementation(libs.junit)
+ }
+ }
+ named("androidDeviceTest") {
+ dependencies {
+ implementation(libs.androidx.test.ext.junit)
+ implementation(libs.espresso.core)
+ }
+ }
}
}
+/*
android {
namespace = "com.geekorum.aboutoss.ui.material"
@@ -95,12 +112,7 @@
}
}
}
-
-dependencies {
- testImplementation(libs.junit)
- androidTestImplementation(libs.androidx.test.ext.junit)
- androidTestImplementation(libs.espresso.core)
-}
+*/
mavenPublishing {
val artifactId = "ui-material"
--- a/ui/material3/build.gradle.kts Tue Sep 16 15:21:10 2025 -0400
+++ b/ui/material3/build.gradle.kts Mon May 26 17:49:20 2025 -0400
@@ -30,8 +30,11 @@
}
kotlin {
- androidTarget()
-
+ androidLibrary {
+ namespace = "com.geekorum.aboutoss.ui.material3"
+ withHostTestBuilder { }
+ withDeviceTestBuilder { }
+ }
jvm("desktop")
listOf(
@@ -64,10 +67,22 @@
implementation(dependencies.platform(libs.androidx.compose.bom))
implementation(libs.androidx.activity.compose)
}
+ named("androidHostTest") {
+ dependencies {
+ implementation(libs.junit)
+ }
+ }
+ named("androidDeviceTest") {
+ dependencies {
+ implementation(libs.androidx.test.ext.junit)
+ implementation(libs.espresso.core)
+ }
+ }
}
}
+/*
android {
namespace = "com.geekorum.aboutoss.ui.material3"
@@ -97,14 +112,14 @@
}
}
}
+*/
dependencies {
- testImplementation(libs.junit)
- androidTestImplementation(libs.androidx.test.ext.junit)
- androidTestImplementation(libs.espresso.core)
+/*
afterEvaluate {
"androidDebugImplementation"(libs.androidx.compose.uiTooling)
}
+*/
}
mavenPublishing {