From 692f7c427068cbc6b21f1203c23bc143c2f54d7d Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Wed, 3 Jul 2024 11:00:45 -0400 Subject: [PATCH] Upgrades to Kotlin 2.0.0 --- .gitignore | 1 + .idea/kotlinc.xml | 2 +- amethyst/build.gradle | 20 ++++++++++++-------- ammolite/build.gradle | 13 +++++++++---- benchmark/build.gradle | 12 +++++++++--- build.gradle | 25 ++----------------------- commons/build.gradle | 20 +++++++++++++------- gradle/libs.versions.toml | 3 ++- quartz/build.gradle | 13 +++++++++---- 9 files changed, 58 insertions(+), 51 deletions(-) diff --git a/.gitignore b/.gitignore index 56a64a7a2..23b285a78 100644 --- a/.gitignore +++ b/.gitignore @@ -42,6 +42,7 @@ out/ .gradle .gradle/ build/ +.kotlin/ # Local configuration file (sdk path, etc) local.properties diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml index 148fdd246..6d0ee1c2a 100644 --- a/.idea/kotlinc.xml +++ b/.idea/kotlinc.xml @@ -1,6 +1,6 @@ - \ No newline at end of file diff --git a/amethyst/build.gradle b/amethyst/build.gradle index d154fda61..2f10490dd 100644 --- a/amethyst/build.gradle +++ b/amethyst/build.gradle @@ -2,6 +2,7 @@ plugins { alias(libs.plugins.androidApplication) alias(libs.plugins.jetbrainsKotlinAndroid) alias(libs.plugins.googleServices) + alias(libs.plugins.jetbrainsComposeCompiler) } android { @@ -132,19 +133,11 @@ android { targetCompatibility JavaVersion.VERSION_17 } - kotlinOptions { - jvmTarget = '17' - } - buildFeatures { compose true buildConfig true } - composeOptions { - // Should match compose version : https://developer.android.com/jetpack/androidx/releases/compose-kotlin - kotlinCompilerExtensionVersion "1.5.14" - } packagingOptions { resources { excludes += ['/META-INF/{AL2.0,LGPL2.1}', '**/libscrypt.dylib'] @@ -160,6 +153,16 @@ android { } } +kotlin { + compilerOptions { + jvmTarget = JvmTarget.JVM_17 + } +} + +composeCompiler { + reportsDestination = layout.buildDirectory.dir("compose_compiler") +} + dependencies { implementation platform(libs.androidx.compose.bom) @@ -296,6 +299,7 @@ dependencies { import com.android.tools.profgen.ArtProfileKt import com.android.tools.profgen.ArtProfileSerializer import com.android.tools.profgen.DexFile +import org.jetbrains.kotlin.gradle.dsl.JvmTarget project.afterEvaluate { tasks.each { task -> diff --git a/ammolite/build.gradle b/ammolite/build.gradle index 8a14671f0..68a716057 100644 --- a/ammolite/build.gradle +++ b/ammolite/build.gradle @@ -1,3 +1,5 @@ +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + plugins { alias(libs.plugins.androidLibrary) alias(libs.plugins.jetbrainsKotlinAndroid) @@ -33,10 +35,6 @@ android { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } - kotlinOptions { - jvmTarget = '17' - freeCompilerArgs += "-Xstring-concat=inline" - } packagingOptions { resources { excludes += ['**/libscrypt.dylib'] @@ -44,6 +42,13 @@ android { } } +kotlin { + compilerOptions { + jvmTarget = JvmTarget.JVM_17 + freeCompilerArgs.add("-Xstring-concat=inline") + } +} + dependencies { implementation libs.androidx.core.ktx diff --git a/benchmark/build.gradle b/benchmark/build.gradle index b2f754cb2..69322e88c 100644 --- a/benchmark/build.gradle +++ b/benchmark/build.gradle @@ -1,3 +1,5 @@ +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + plugins { alias(libs.plugins.androidLibrary) alias(libs.plugins.jetbrainsKotlinAndroid) @@ -21,9 +23,6 @@ android { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } - kotlinOptions { - jvmTarget = '17' - } sourceSets.androidTest.assets.srcDirs += ["../quartz/src/androidTest/assets"] @@ -47,6 +46,13 @@ android { } } +kotlin { + compilerOptions { + jvmTarget = JvmTarget.JVM_17 + freeCompilerArgs.add("-Xstring-concat=inline") + } +} + dependencies { androidTestImplementation platform(libs.androidx.compose.bom) androidTestImplementation libs.androidx.runner diff --git a/build.gradle b/build.gradle index e59be5f63..bcfa3d173 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,3 @@ -import org.jetbrains.kotlin.gradle.tasks.KotlinCompile - plugins { alias(libs.plugins.androidApplication) apply false alias(libs.plugins.jetbrainsKotlinAndroid) apply false @@ -8,36 +6,17 @@ plugins { alias(libs.plugins.androidBenchmark) apply false alias(libs.plugins.diffplugSpotless) apply false alias(libs.plugins.googleServices) apply false + alias(libs.plugins.jetbrainsComposeCompiler) apply false } subprojects { - tasks.withType(KotlinCompile).configureEach { - kotlinOptions { - if (project.findProperty("composeCompilerReports") == "true") { - freeCompilerArgs += [ - "-P", - "plugin:androidx.compose.compiler.plugins.kotlin:reportsDestination=" + - project.buildDir.absolutePath + "/compose_compiler" - ] - } - if (project.findProperty("composeCompilerMetrics") == "true") { - freeCompilerArgs += [ - "-P", - "plugin:androidx.compose.compiler.plugins.kotlin:metricsDestination=" + - project.buildDir.absolutePath + "/compose_compiler" - ] - } - } - } - apply plugin: 'com.diffplug.spotless' spotless { kotlin { target '**/*.kt' - targetExclude("$buildDir/**/*.kt") + targetExclude("$layout.buildDirectory/**/*.kt") ktlint("1.1.0") - //ktfmt().googleStyle() licenseHeaderFile rootProject.file('spotless/copyright.kt'), "package|import|class|object|sealed|open|interface|abstract " } diff --git a/commons/build.gradle b/commons/build.gradle index 21921a446..d5f453dd9 100644 --- a/commons/build.gradle +++ b/commons/build.gradle @@ -1,6 +1,9 @@ +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + plugins { alias(libs.plugins.androidLibrary) alias(libs.plugins.jetbrainsKotlinAndroid) + alias(libs.plugins.jetbrainsComposeCompiler) } android { @@ -28,20 +31,23 @@ android { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } - kotlinOptions { - jvmTarget = '17' - freeCompilerArgs += "-Xstring-concat=inline" - } buildFeatures { compose true } - composeOptions { - // Should match compose version : https://developer.android.com/jetpack/androidx/releases/compose-kotlin - kotlinCompilerExtensionVersion "1.5.14" +} + +kotlin { + compilerOptions { + jvmTarget = JvmTarget.JVM_17 + freeCompilerArgs.add("-Xstring-concat=inline") } } +composeCompiler { + reportsDestination = layout.buildDirectory.dir("compose_compiler") +} + dependencies { implementation project(path: ':quartz') diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index afcd46518..51c3f6e18 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -20,7 +20,7 @@ gms = "4.4.2" jacksonModuleKotlin = "2.17.1" jna = "5.14.0" junit = "4.13.2" -kotlin = "1.9.24" +kotlin = "2.0.0" kotlinxCollectionsImmutable = "0.3.7" languageId = "17.0.5" lazysodiumAndroid = "5.1.0" @@ -126,3 +126,4 @@ diffplugSpotless = { id = "com.diffplug.spotless", version.ref = "spotless" } googleServices = { id = "com.google.gms.google-services", version.ref = "gms" } jetbrainsKotlinAndroid = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } jetbrainsKotlinJvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } +jetbrainsComposeCompiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } \ No newline at end of file diff --git a/quartz/build.gradle b/quartz/build.gradle index f775df581..73e7d7298 100644 --- a/quartz/build.gradle +++ b/quartz/build.gradle @@ -1,3 +1,5 @@ +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + plugins { alias(libs.plugins.androidLibrary) alias(libs.plugins.jetbrainsKotlinAndroid) @@ -29,10 +31,6 @@ android { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } - kotlinOptions { - jvmTarget = '17' - freeCompilerArgs += "-Xstring-concat=inline" - } packagingOptions { resources { excludes += ['**/libscrypt.dylib'] @@ -40,6 +38,13 @@ android { } } +kotlin { + compilerOptions { + jvmTarget = JvmTarget.JVM_17 + freeCompilerArgs.add("-Xstring-concat=inline") + } +} + dependencies { implementation libs.androidx.core.ktx