diff --git a/.gitignore b/.gitignore index 878c2cd..df10f88 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ .externalNativeBuild .cxx local.properties +.kotlin \ No newline at end of file diff --git a/build-logic/convention/src/main/kotlin/AndroidApplicationComposeConventionPlugin.kt b/build-logic/convention/src/main/kotlin/AndroidApplicationComposeConventionPlugin.kt index 9d60133..c81944b 100644 --- a/build-logic/convention/src/main/kotlin/AndroidApplicationComposeConventionPlugin.kt +++ b/build-logic/convention/src/main/kotlin/AndroidApplicationComposeConventionPlugin.kt @@ -9,6 +9,7 @@ class AndroidApplicationComposeConventionPlugin : Plugin { override fun apply(target: Project) { with(target) { pluginManager.apply("com.android.application") + pluginManager.apply("org.jetbrains.kotlin.plugin.compose") extensions.configure { configureAndroidCompose(this) diff --git a/build-logic/convention/src/main/kotlin/AndroidLibraryComposeConventionPlugin.kt b/build-logic/convention/src/main/kotlin/AndroidLibraryComposeConventionPlugin.kt index c1b3715..ecedca7 100644 --- a/build-logic/convention/src/main/kotlin/AndroidLibraryComposeConventionPlugin.kt +++ b/build-logic/convention/src/main/kotlin/AndroidLibraryComposeConventionPlugin.kt @@ -8,6 +8,8 @@ class AndroidLibraryComposeConventionPlugin : Plugin { override fun apply(target: Project) { with(target) { + pluginManager.apply("org.jetbrains.kotlin.plugin.compose") + extensions.configure { configureAndroidCompose(this) } diff --git a/build-logic/convention/src/main/kotlin/gq/kirmanak/mealient/AndroidCompose.kt b/build-logic/convention/src/main/kotlin/gq/kirmanak/mealient/AndroidCompose.kt index 98080ea..761b155 100644 --- a/build-logic/convention/src/main/kotlin/gq/kirmanak/mealient/AndroidCompose.kt +++ b/build-logic/convention/src/main/kotlin/gq/kirmanak/mealient/AndroidCompose.kt @@ -20,11 +20,6 @@ internal fun Project.configureAndroidCompose( compose = true } - composeOptions { - val version = libs.findVersion("composeKotlinCompilerExtension") - kotlinCompilerExtensionVersion = version.get().toString() - } - // Add compose-destinations generated code to Gradle source sets variants.all { kotlin.sourceSets { diff --git a/build-logic/convention/src/main/kotlin/gq/kirmanak/mealient/Extensions.kt b/build-logic/convention/src/main/kotlin/gq/kirmanak/mealient/Extensions.kt index f686007..6381013 100644 --- a/build-logic/convention/src/main/kotlin/gq/kirmanak/mealient/Extensions.kt +++ b/build-logic/convention/src/main/kotlin/gq/kirmanak/mealient/Extensions.kt @@ -1,6 +1,5 @@ package gq.kirmanak.mealient -import com.android.build.api.dsl.CommonExtension import org.gradle.api.Action import org.gradle.api.NamedDomainObjectContainer import org.gradle.api.Project @@ -8,7 +7,6 @@ import org.gradle.api.artifacts.MinimalExternalModuleDependency import org.gradle.api.plugins.ExtensionAware import org.gradle.api.provider.Provider import org.jetbrains.kotlin.gradle.dsl.KotlinAndroidProjectExtension -import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet internal val Project.kotlin: KotlinAndroidProjectExtension @@ -24,6 +22,3 @@ internal fun Project.library(name: String): Provider.kotlinOptions(block: KotlinJvmOptions.() -> Unit) { - (this as ExtensionAware).extensions.configure("kotlinOptions", block) -} diff --git a/build-logic/convention/src/main/kotlin/gq/kirmanak/mealient/KotlinAndroid.kt b/build-logic/convention/src/main/kotlin/gq/kirmanak/mealient/KotlinAndroid.kt index 083557b..65c09b3 100644 --- a/build-logic/convention/src/main/kotlin/gq/kirmanak/mealient/KotlinAndroid.kt +++ b/build-logic/convention/src/main/kotlin/gq/kirmanak/mealient/KotlinAndroid.kt @@ -20,10 +20,6 @@ internal fun Project.configureKotlinAndroid( isCoreLibraryDesugaringEnabled = true } - kotlinOptions { - freeCompilerArgs = freeCompilerArgs + listOf("-opt-in=kotlin.RequiresOptIn") - } - lint { disable += listOf( "ObsoleteLintCustomCheck", diff --git a/build.gradle.kts b/build.gradle.kts index a6550a5..3a41829 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -17,6 +17,7 @@ plugins { alias(libs.plugins.sonarqube) alias(libs.plugins.ksp) apply false alias(libs.plugins.kover) apply false + alias(libs.plugins.compose.compiler) apply false } sonarqube { diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index d4c3386..6224aeb 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -2,7 +2,7 @@ # https://maven.google.com/web/index.html?q=com.android.tools.build#com.android.tools.build:gradle androidGradlePlugin = "8.5.0" # https://github.com/JetBrains/kotlin/releases -kotlin = "1.9.22" +kotlin = "2.0.0" # https://dagger.dev/hilt/gradle-setup hilt = "2.51.1" # https://github.com/protocolbuffers/protobuf/releases @@ -54,7 +54,7 @@ chucker = "4.0.0" # https://github.com/google/desugar_jdk_libs/blob/master/CHANGELOG.md desugar = "2.0.4" # https://github.com/google/ksp/releases -kspPlugin = "1.9.22-1.0.17" +kspPlugin = "2.0.0-1.0.22" # https://developer.android.com/jetpack/androidx/releases/sharetarget shareTarget = "1.2.0" # https://github.com/KasperskyLab/Kaspresso/releases @@ -67,8 +67,6 @@ androidXTestOrchestrator = "1.4.2" junitKtx = "1.2.1" # https://mvnrepository.com/artifact/androidx.compose/compose-bom composeBom = "2024.03.00" -# https://developer.android.com/jetpack/androidx/releases/compose-kotlin -composeKotlinCompilerExtension = "1.5.9" # https://google.github.io/accompanist/ accompanistVersion = "0.34.0" # https://developer.android.com/jetpack/androidx/releases/compose-material @@ -191,3 +189,4 @@ sonarqube = { id = "org.sonarqube", version.ref = "sonarqube" } ksp = { id = "com.google.devtools.ksp", version.ref = "kspPlugin" } protobuf = { id = "com.google.protobuf", version.ref = "protobufPlugin" } kover = { id = "org.jetbrains.kotlinx.kover", version.ref = "kover" } +compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } \ No newline at end of file