diff --git a/build.gradle.kts b/build.gradle.kts index 4a7818c1..b2c32285 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,9 +1,8 @@ plugins { alias(libs.plugins.aboutLibraries) apply false alias(libs.plugins.androidApplication) apply false - alias(libs.plugins.androidLibrary) apply false + alias(libs.plugins.androidMultiplatformLibrary) apply false alias(libs.plugins.composeMultiplatform) apply false - alias(libs.plugins.kotlinParcelize) apply false alias(libs.plugins.kotlinMultiplatform) apply false alias(libs.plugins.kotlinSerialization) apply false alias(libs.plugins.kotlinJvm) apply false diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 57dfb56e..be34d31c 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -109,13 +109,12 @@ slf4j-nop = { module = "org.slf4j:slf4j-nop", version.ref = "slf4jNop" } [plugins] aboutLibraries = { id = "com.mikepenz.aboutlibraries.plugin", version.ref = "aboutlibraries" } androidApplication = { id = "com.android.application", version.ref = "agp" } -androidLibrary = { id = "com.android.library", version.ref = "agp" } +androidMultiplatformLibrary = { id = "com.android.kotlin.multiplatform.library", version.ref = "agp" } composeCompiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } composeMultiplatform = { id = "org.jetbrains.compose", version.ref = "compose-multiplatform" } googleServices = { id = "com.google.gms.google-services", version.ref = "google-services" } jib = { id = "com.google.cloud.tools.jib", version.ref = "jib" } kotlinJvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" } -kotlinParcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlin" } kotlinSerialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } ktor = { id = "io.ktor.plugin", version.ref = "ktor" } diff --git a/shared/build.gradle.kts b/shared/build.gradle.kts index 50033fdd..640fad44 100644 --- a/shared/build.gradle.kts +++ b/shared/build.gradle.kts @@ -1,14 +1,16 @@ @file:OptIn(ExperimentalKotlinGradlePluginApi::class) +import com.android.build.api.dsl.androidLibrary import com.mikepenz.aboutlibraries.plugin.DuplicateMode import com.mikepenz.aboutlibraries.plugin.DuplicateRule import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi +import org.jetbrains.kotlin.gradle.dsl.JvmTarget +import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig plugins { alias(libs.plugins.aboutLibraries) - alias(libs.plugins.androidLibrary) + alias(libs.plugins.androidMultiplatformLibrary) alias(libs.plugins.composeMultiplatform) - alias(libs.plugins.kotlinParcelize) alias(libs.plugins.composeCompiler) alias(libs.plugins.kotlinMultiplatform) alias(libs.plugins.kotlinSerialization) @@ -18,13 +20,12 @@ kotlin { compilerOptions { freeCompilerArgs.add("-Xexpect-actual-classes") } - androidTarget { - compilerOptions { - freeCompilerArgs.addAll( - "-P", - "plugin:org.jetbrains.kotlin.parcelize:additionalAnnotation=org.jetbrains.kotlinconf.zoomable.internal.AndroidParcelize" - ) - } + androidLibrary { + namespace = "org.jetbrains.kotlinconf" + compileSdk = libs.versions.android.compileSdk.get().toInt() + minSdk = libs.versions.android.minSdk.get().toInt() + compilerOptions.jvmTarget = JvmTarget.JVM_11 + androidResources.enable = true } jvm() @@ -118,6 +119,9 @@ kotlin { implementation(libs.androidx.preference) implementation(libs.compose.ui.tooling.preview) implementation(libs.ktor.client.okhttp) + + // TODO should be debugImplementation https://issuetracker.google.com/issues/453706861 + implementation(libs.compose.ui.tooling) } iosMain.dependencies { @@ -142,24 +146,6 @@ kotlin { jvmToolchain(21) } -android { - namespace = "org.jetbrains.kotlinconf" - compileSdk = libs.versions.android.compileSdk.get().toInt() - - defaultConfig { - minSdk = libs.versions.android.minSdk.get().toInt() - } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 - } -} - -// Android preview support -dependencies { - debugImplementation(libs.compose.ui.tooling) -} - compose.desktop { application { mainClass = "org.jetbrains.kotlinconf.MainKt" diff --git a/ui-components/build.gradle.kts b/ui-components/build.gradle.kts index 9bed6c22..2382623e 100644 --- a/ui-components/build.gradle.kts +++ b/ui-components/build.gradle.kts @@ -1,10 +1,12 @@ @file:OptIn(ExperimentalKotlinGradlePluginApi::class) +import com.android.build.api.dsl.androidLibrary import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl +import org.jetbrains.kotlin.gradle.dsl.JvmTarget plugins { - alias(libs.plugins.androidLibrary) + alias(libs.plugins.androidMultiplatformLibrary) alias(libs.plugins.composeMultiplatform) alias(libs.plugins.composeCompiler) alias(libs.plugins.kotlinMultiplatform) @@ -13,7 +15,13 @@ plugins { kotlin { applyDefaultHierarchyTemplate() - androidTarget() + androidLibrary { + namespace = "com.jetbrains.kotlinconf.uicomponents" + compileSdk = libs.versions.android.compileSdk.get().toInt() + minSdk = libs.versions.android.minSdk.get().toInt() + compilerOptions.jvmTarget = JvmTarget.JVM_11 + androidResources.enable = true + } jvm() @@ -56,6 +64,9 @@ kotlin { androidMain.dependencies { implementation(libs.ktor.client.okhttp) + + // TODO should be debugImplementation https://issuetracker.google.com/issues/453706861 + implementation(libs.compose.ui.tooling.preview) } jvmMain.dependencies { implementation(libs.ktor.client.okhttp) @@ -75,24 +86,7 @@ kotlin { } } -android { - namespace = "com.jetbrains.kotlinconf.uicomponents" - compileSdk = libs.versions.android.compileSdk.get().toInt() - defaultConfig { - minSdk = libs.versions.android.minSdk.get().toInt() - } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 - } -} - compose.resources { publicResClass = true nameOfResClass = "UiRes" } - -// Android preview support -dependencies { - debugImplementation(libs.compose.ui.tooling) -}