From 436ffccecfa8532802501b64364d3d991c44a137 Mon Sep 17 00:00:00 2001 From: Vsevolod Tolstopyatov Date: Thu, 18 Jul 2024 14:36:13 +0200 Subject: [PATCH 01/11] Migrate from kotlinOptions to compilerOptions in benchmarks module --- benchmark/build.gradle.kts | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/benchmark/build.gradle.kts b/benchmark/build.gradle.kts index c63239c560..d614d01825 100644 --- a/benchmark/build.gradle.kts +++ b/benchmark/build.gradle.kts @@ -1,3 +1,4 @@ +import org.gradle.kotlin.dsl.support.* import org.jetbrains.kotlin.gradle.dsl.* import org.jetbrains.kotlin.gradle.tasks.KotlinCompile @@ -40,15 +41,12 @@ tasks.assemble { dependsOn(tasks.jmhClasses) } -tasks.withType().configureEach { +kotlin { compilerOptions { jvmTarget = JvmTarget.JVM_1_8 - } - - kotlinOptions { if (overriddenLanguageVersion != null) { - languageVersion = overriddenLanguageVersion - freeCompilerArgs += "-Xsuppress-version-warnings" + languageVersion.set(KotlinVersion.fromVersion(overriddenLanguageVersion!!)) + freeCompilerArgs.add("-Xsuppress-version-warnings") } } } From a5af96274e84a4de5fdba185c8d0bd0553f25460 Mon Sep 17 00:00:00 2001 From: Vsevolod Tolstopyatov Date: Thu, 18 Jul 2024 14:41:00 +0200 Subject: [PATCH 02/11] source-sets-conventions JVM --- .../main/kotlin/source-sets-conventions.gradle.kts | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/buildSrc/src/main/kotlin/source-sets-conventions.gradle.kts b/buildSrc/src/main/kotlin/source-sets-conventions.gradle.kts index 6aca5431ad..e82ffaedf4 100644 --- a/buildSrc/src/main/kotlin/source-sets-conventions.gradle.kts +++ b/buildSrc/src/main/kotlin/source-sets-conventions.gradle.kts @@ -5,6 +5,8 @@ @file:OptIn(ExperimentalWasmDsl::class) import org.gradle.kotlin.dsl.* +import org.jetbrains.kotlin.gradle.* +import org.jetbrains.kotlin.gradle.dsl.* import org.jetbrains.kotlin.gradle.plugin.mpp.* import org.jetbrains.kotlin.gradle.targets.js.dsl.* import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension @@ -30,11 +32,10 @@ kotlin { jvm { withJava() - compilations.configureEach { - kotlinOptions { - jvmTarget = "1.8" - freeCompilerArgs += "-Xjdk-release=1.8" - } + @OptIn(ExperimentalKotlinGradlePluginApi::class) + compilerOptions { + jvmTarget.set(JvmTarget.JVM_1_8) + freeCompilerArgs.add("-Xjdk-release=1.8") } } From 6659381259aaae4efad513c22a0c08260f8718ca Mon Sep 17 00:00:00 2001 From: Vsevolod Tolstopyatov Date: Thu, 18 Jul 2024 14:57:54 +0200 Subject: [PATCH 03/11] source-sets-conventions.gradle.kts the rest --- .../kotlin/source-sets-conventions.gradle.kts | 31 +++++++++---------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/buildSrc/src/main/kotlin/source-sets-conventions.gradle.kts b/buildSrc/src/main/kotlin/source-sets-conventions.gradle.kts index e82ffaedf4..e2352fe847 100644 --- a/buildSrc/src/main/kotlin/source-sets-conventions.gradle.kts +++ b/buildSrc/src/main/kotlin/source-sets-conventions.gradle.kts @@ -11,6 +11,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.* import org.jetbrains.kotlin.gradle.targets.js.dsl.* import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension import org.jetbrains.kotlin.gradle.targets.native.tasks.* +import org.jetbrains.kotlin.gradle.tasks.* import org.jetbrains.kotlin.gradle.testing.* plugins { @@ -47,11 +48,11 @@ kotlin { } } } - compilations.matching { it.name == "main" || it.name == "test" }.configureEach { - kotlinOptions { - sourceMap = true - moduleKind = "umd" - } + + @OptIn(ExperimentalKotlinGradlePluginApi::class) + compilerOptions { + sourceMap = true + moduleKind.set(JsModuleKind.MODULE_UMD) } } @@ -155,19 +156,17 @@ kotlin { optIn("kotlinx.serialization.ExperimentalSerializationApi") } } +} - targets.all { - compilations.all { - kotlinOptions { - if (overriddenLanguageVersion != null) { - languageVersion = overriddenLanguageVersion - freeCompilerArgs += "-Xsuppress-version-warnings" - } - freeCompilerArgs += "-Xexpect-actual-classes" - } - } - compilations["main"].kotlinOptions { +tasks.withType(KotlinCompilationTask::class).configureEach { + compilerOptions { + if (name == "main") { allWarningsAsErrors = true } + if (overriddenLanguageVersion != null) { + languageVersion.set(KotlinVersion.fromVersion(overriddenLanguageVersion!!)) + freeCompilerArgs.add("-Xsuppress-version-warnings") + } + freeCompilerArgs.add("-Xexpect-actual-classes") } } From 61d6c18410933957665a3f53be4bc2d01ec96f4b Mon Sep 17 00:00:00 2001 From: Vsevolod Tolstopyatov Date: Thu, 18 Jul 2024 15:09:20 +0200 Subject: [PATCH 04/11] leftovers --- buildSrc/src/main/kotlin/Java9Modularity.kt | 6 ++++-- core/build.gradle.kts | 2 +- formats/hocon/build.gradle.kts | 14 ++------------ guide/build.gradle.kts | 9 ++++----- 4 files changed, 11 insertions(+), 20 deletions(-) diff --git a/buildSrc/src/main/kotlin/Java9Modularity.kt b/buildSrc/src/main/kotlin/Java9Modularity.kt index 2743b00f64..313c9cecca 100644 --- a/buildSrc/src/main/kotlin/Java9Modularity.kt +++ b/buildSrc/src/main/kotlin/Java9Modularity.kt @@ -21,6 +21,7 @@ import org.jetbrains.kotlin.gradle.targets.jvm.* import org.jetbrains.kotlin.gradle.tasks.* import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile +import org.jetbrains.kotlin.gradle.utils.* import org.jetbrains.kotlin.tooling.core.* import java.io.* import kotlin.reflect.* @@ -113,6 +114,7 @@ object Java9Modularity { sourceFile: File ): TaskProvider { apply() + @Suppress("DEPRECATION") val verifyModuleTaskName = "verify${compileTask.name.removePrefix("compile").capitalize()}Module" // work-around for https://youtrack.jetbrains.com/issue/KT-60542 val kotlinApiPlugin = plugins.getPlugin(KotlinApiPlugin::class) @@ -139,7 +141,7 @@ object Java9Modularity { freeCompilerArgs.addAll( listOf("-Xjdk-release=9", "-Xsuppress-version-warnings", "-Xexpect-actual-classes") ) - optIn.addAll(compileTask.kotlinOptions.options.optIn) + optIn.addAll(compileTask.compilerOptions.optIn) } // work-around for https://youtrack.jetbrains.com/issue/KT-60583 inputs.files( @@ -160,7 +162,7 @@ object Java9Modularity { .declaredMemberProperties .find { it.name == "ownModuleName" } ?.get(this) as? Property - ownModuleNameProp?.set(compileTask.kotlinOptions.moduleName) + ownModuleNameProp?.set(compileTask.compilerOptions.moduleName) } val taskKotlinLanguageVersion = compilerOptions.languageVersion.orElse(KotlinVersion.DEFAULT) diff --git a/core/build.gradle.kts b/core/build.gradle.kts index bc105c2e4d..b3d885ee26 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -71,5 +71,5 @@ tasks.withType().named(kotlin.jvm().artifactsTaskName) { configureJava9ModuleInfo() tasks.withType().configureEach { - kotlinOptions.freeCompilerArgs += "-Xwasm-enable-array-range-checks" + compilerOptions.freeCompilerArgs.add("-Xwasm-enable-array-range-checks") } diff --git a/formats/hocon/build.gradle.kts b/formats/hocon/build.gradle.kts index 5f0ae2cebc..58c0bde330 100644 --- a/formats/hocon/build.gradle.kts +++ b/formats/hocon/build.gradle.kts @@ -15,20 +15,10 @@ plugins { tasks.compileKotlin { compilerOptions { allWarningsAsErrors = true - } -} - -tasks.withType().configureEach { - compilerOptions { jvmTarget = JvmTarget.JVM_1_8 - } -} - -tasks.withType().configureEach { - kotlinOptions { if (overriddenLanguageVersion != null) { - languageVersion = overriddenLanguageVersion - freeCompilerArgs += "-Xsuppress-version-warnings" + languageVersion.set(KotlinVersion.fromVersion(overriddenLanguageVersion!!)) + freeCompilerArgs.add("-Xsuppress-version-warnings") } } } diff --git a/guide/build.gradle.kts b/guide/build.gradle.kts index 9df47bcf59..489d9d317a 100644 --- a/guide/build.gradle.kts +++ b/guide/build.gradle.kts @@ -1,3 +1,4 @@ +import org.jetbrains.kotlin.gradle.dsl.KotlinVersion import org.jetbrains.kotlin.gradle.tasks.KotlinCompile /* @@ -11,13 +12,11 @@ plugins { kotlin { jvmToolchain(8) -} -tasks.withType().configureEach { - kotlinOptions { + compilerOptions { if (overriddenLanguageVersion != null) { - languageVersion = overriddenLanguageVersion - freeCompilerArgs += "-Xsuppress-version-warnings" + languageVersion.set(KotlinVersion.fromVersion(overriddenLanguageVersion!!)) + freeCompilerArgs.add("-Xsuppress-version-warnings") } } } From 80f0da4dc6d8f0b100572ed74c6ea921a17f47c5 Mon Sep 17 00:00:00 2001 From: Vsevolod Tolstopyatov Date: Thu, 18 Jul 2024 15:34:44 +0200 Subject: [PATCH 05/11] WA for KT-68661 --- buildSrc/src/main/kotlin/source-sets-conventions.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/src/main/kotlin/source-sets-conventions.gradle.kts b/buildSrc/src/main/kotlin/source-sets-conventions.gradle.kts index e2352fe847..1c775e7b73 100644 --- a/buildSrc/src/main/kotlin/source-sets-conventions.gradle.kts +++ b/buildSrc/src/main/kotlin/source-sets-conventions.gradle.kts @@ -8,7 +8,7 @@ import org.gradle.kotlin.dsl.* import org.jetbrains.kotlin.gradle.* import org.jetbrains.kotlin.gradle.dsl.* import org.jetbrains.kotlin.gradle.plugin.mpp.* -import org.jetbrains.kotlin.gradle.targets.js.dsl.* +import org.jetbrains.kotlin.gradle.targets.js.dsl.ExperimentalWasmDsl import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension import org.jetbrains.kotlin.gradle.targets.native.tasks.* import org.jetbrains.kotlin.gradle.tasks.* From 1361b369562f6795f8456dd2dd008e68a0e21fd7 Mon Sep 17 00:00:00 2001 From: Vsevolod Tolstopyatov Date: Thu, 1 Aug 2024 17:52:41 +0200 Subject: [PATCH 06/11] Use Java 11 toolchain --- buildSrc/src/main/kotlin/Projects.kt | 2 ++ buildSrc/src/main/kotlin/source-sets-conventions.gradle.kts | 1 + formats/hocon/build.gradle.kts | 3 ++- gradle.properties | 2 +- 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/buildSrc/src/main/kotlin/Projects.kt b/buildSrc/src/main/kotlin/Projects.kt index 67ff49ca50..c74abc15f9 100644 --- a/buildSrc/src/main/kotlin/Projects.kt +++ b/buildSrc/src/main/kotlin/Projects.kt @@ -12,6 +12,8 @@ fun Project.propertyIsTrue(propertyName: String): Boolean { return (findProperty(propertyName) as? String?).equals("true", true) } +val Project.jdkToolchainVersion: Int get() = findProperty("jdk_toolchain_version").toString().toInt() + val Project.overriddenLanguageVersion : String? get() = findProperty("kotlin_language_version") as String? diff --git a/buildSrc/src/main/kotlin/source-sets-conventions.gradle.kts b/buildSrc/src/main/kotlin/source-sets-conventions.gradle.kts index 1c775e7b73..2fc17545bd 100644 --- a/buildSrc/src/main/kotlin/source-sets-conventions.gradle.kts +++ b/buildSrc/src/main/kotlin/source-sets-conventions.gradle.kts @@ -39,6 +39,7 @@ kotlin { freeCompilerArgs.add("-Xjdk-release=1.8") } } + jvmToolchain(jdkToolchainVersion) js { nodejs { diff --git a/formats/hocon/build.gradle.kts b/formats/hocon/build.gradle.kts index 58c0bde330..81e611bd28 100644 --- a/formats/hocon/build.gradle.kts +++ b/formats/hocon/build.gradle.kts @@ -12,7 +12,7 @@ plugins { alias(libs.plugins.serialization) } -tasks.compileKotlin { +kotlin { compilerOptions { allWarningsAsErrors = true jvmTarget = JvmTarget.JVM_1_8 @@ -21,6 +21,7 @@ tasks.compileKotlin { freeCompilerArgs.add("-Xsuppress-version-warnings") } } + jvmToolchain(jdkToolchainVersion) } java { diff --git a/gradle.properties b/gradle.properties index 39c94e653d..f9cd9f269e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,7 +4,7 @@ group=org.jetbrains.kotlinx version=1.7.2-SNAPSHOT - +jdk_toolchain_version=11 # This version takes precedence if 'bootstrap' property passed to project kotlin.version.snapshot=2.0.255-SNAPSHOT # Also set KONAN_LOCAL_DIST environment variable in bootstrap mode to auto-assign konan.home From 9856ad20c7a4c831a1e8aee3a1cc88fb772e4cb0 Mon Sep 17 00:00:00 2001 From: Vsevolod Tolstopyatov Date: Sat, 17 Aug 2024 18:38:56 +0200 Subject: [PATCH 07/11] ~fixup --- buildSrc/src/main/kotlin/source-sets-conventions.gradle.kts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/buildSrc/src/main/kotlin/source-sets-conventions.gradle.kts b/buildSrc/src/main/kotlin/source-sets-conventions.gradle.kts index 2fc17545bd..4952755e73 100644 --- a/buildSrc/src/main/kotlin/source-sets-conventions.gradle.kts +++ b/buildSrc/src/main/kotlin/source-sets-conventions.gradle.kts @@ -161,7 +161,8 @@ kotlin { tasks.withType(KotlinCompilationTask::class).configureEach { compilerOptions { - if (name == "main") { + val isMainTaskName = name.startsWith("compileKotlin") + if (isMainTaskName) { allWarningsAsErrors = true } if (overriddenLanguageVersion != null) { From 5f00a50ad4773688596fe2b65fdf10d9715363df Mon Sep 17 00:00:00 2001 From: Vsevolod Tolstopyatov Date: Wed, 21 Aug 2024 15:10:32 +0200 Subject: [PATCH 08/11] Apply suggestions from code review Co-authored-by: Zongle Wang --- benchmark/build.gradle.kts | 2 +- .../src/main/kotlin/source-sets-conventions.gradle.kts | 8 ++++---- guide/build.gradle.kts | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/benchmark/build.gradle.kts b/benchmark/build.gradle.kts index d614d01825..1f5585cfa5 100644 --- a/benchmark/build.gradle.kts +++ b/benchmark/build.gradle.kts @@ -45,7 +45,7 @@ kotlin { compilerOptions { jvmTarget = JvmTarget.JVM_1_8 if (overriddenLanguageVersion != null) { - languageVersion.set(KotlinVersion.fromVersion(overriddenLanguageVersion!!)) + languageVersion = KotlinVersion.fromVersion(overriddenLanguageVersion!!) freeCompilerArgs.add("-Xsuppress-version-warnings") } } diff --git a/buildSrc/src/main/kotlin/source-sets-conventions.gradle.kts b/buildSrc/src/main/kotlin/source-sets-conventions.gradle.kts index 4952755e73..c2fd9f8872 100644 --- a/buildSrc/src/main/kotlin/source-sets-conventions.gradle.kts +++ b/buildSrc/src/main/kotlin/source-sets-conventions.gradle.kts @@ -35,7 +35,7 @@ kotlin { withJava() @OptIn(ExperimentalKotlinGradlePluginApi::class) compilerOptions { - jvmTarget.set(JvmTarget.JVM_1_8) + jvmTarget = JvmTarget.JVM_1_8 freeCompilerArgs.add("-Xjdk-release=1.8") } } @@ -53,7 +53,7 @@ kotlin { @OptIn(ExperimentalKotlinGradlePluginApi::class) compilerOptions { sourceMap = true - moduleKind.set(JsModuleKind.MODULE_UMD) + moduleKind = JsModuleKind.MODULE_UMD } } @@ -159,14 +159,14 @@ kotlin { } } -tasks.withType(KotlinCompilationTask::class).configureEach { +tasks.withType().configureEach { compilerOptions { val isMainTaskName = name.startsWith("compileKotlin") if (isMainTaskName) { allWarningsAsErrors = true } if (overriddenLanguageVersion != null) { - languageVersion.set(KotlinVersion.fromVersion(overriddenLanguageVersion!!)) + languageVersion = KotlinVersion.fromVersion(overriddenLanguageVersion!!) freeCompilerArgs.add("-Xsuppress-version-warnings") } freeCompilerArgs.add("-Xexpect-actual-classes") diff --git a/guide/build.gradle.kts b/guide/build.gradle.kts index 489d9d317a..a69992b50b 100644 --- a/guide/build.gradle.kts +++ b/guide/build.gradle.kts @@ -15,7 +15,7 @@ kotlin { compilerOptions { if (overriddenLanguageVersion != null) { - languageVersion.set(KotlinVersion.fromVersion(overriddenLanguageVersion!!)) + languageVersion = KotlinVersion.fromVersion(overriddenLanguageVersion!!) freeCompilerArgs.add("-Xsuppress-version-warnings") } } From 999234331fc5707bf7578a106d1724455ee8d6bd Mon Sep 17 00:00:00 2001 From: Vsevolod Tolstopyatov Date: Wed, 21 Aug 2024 15:10:42 +0200 Subject: [PATCH 09/11] Update formats/hocon/build.gradle.kts Co-authored-by: Zongle Wang --- formats/hocon/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/formats/hocon/build.gradle.kts b/formats/hocon/build.gradle.kts index 81e611bd28..b41fdf270e 100644 --- a/formats/hocon/build.gradle.kts +++ b/formats/hocon/build.gradle.kts @@ -17,7 +17,7 @@ kotlin { allWarningsAsErrors = true jvmTarget = JvmTarget.JVM_1_8 if (overriddenLanguageVersion != null) { - languageVersion.set(KotlinVersion.fromVersion(overriddenLanguageVersion!!)) + languageVersion = KotlinVersion.fromVersion(overriddenLanguageVersion!!) freeCompilerArgs.add("-Xsuppress-version-warnings") } } From 3aaaa093a63e92798bf6859c4c49f62c9f550ed7 Mon Sep 17 00:00:00 2001 From: Vsevolod Tolstopyatov Date: Wed, 21 Aug 2024 15:13:51 +0200 Subject: [PATCH 10/11] ~fixup --- buildSrc/src/main/kotlin/source-sets-conventions.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/src/main/kotlin/source-sets-conventions.gradle.kts b/buildSrc/src/main/kotlin/source-sets-conventions.gradle.kts index c2fd9f8872..d8ebfffe59 100644 --- a/buildSrc/src/main/kotlin/source-sets-conventions.gradle.kts +++ b/buildSrc/src/main/kotlin/source-sets-conventions.gradle.kts @@ -159,7 +159,7 @@ kotlin { } } -tasks.withType().configureEach { +tasks.withType(KotlinCompilationTask::class).configureEach { compilerOptions { val isMainTaskName = name.startsWith("compileKotlin") if (isMainTaskName) { From 8341e3dec8c9d4d54b2ae3b62bee9d82f5a5854d Mon Sep 17 00:00:00 2001 From: Vsevolod Tolstopyatov Date: Thu, 22 Aug 2024 19:46:03 +0200 Subject: [PATCH 11/11] ~cleanup --- .../main/kotlin/source-sets-conventions.gradle.kts | 6 ------ formats/hocon/build.gradle.kts | 12 +++++++++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/buildSrc/src/main/kotlin/source-sets-conventions.gradle.kts b/buildSrc/src/main/kotlin/source-sets-conventions.gradle.kts index d8ebfffe59..8b87b3ab10 100644 --- a/buildSrc/src/main/kotlin/source-sets-conventions.gradle.kts +++ b/buildSrc/src/main/kotlin/source-sets-conventions.gradle.kts @@ -18,12 +18,6 @@ plugins { kotlin("multiplatform") } -java { - toolchain { - languageVersion.set(JavaLanguageVersion.of(11)) - } -} - tasks.withType().configureEach { options.release = 8 } diff --git a/formats/hocon/build.gradle.kts b/formats/hocon/build.gradle.kts index b41fdf270e..71a02fcbf1 100644 --- a/formats/hocon/build.gradle.kts +++ b/formats/hocon/build.gradle.kts @@ -13,15 +13,22 @@ plugins { } kotlin { + jvmToolchain(jdkToolchainVersion) compilerOptions { - allWarningsAsErrors = true jvmTarget = JvmTarget.JVM_1_8 if (overriddenLanguageVersion != null) { languageVersion = KotlinVersion.fromVersion(overriddenLanguageVersion!!) freeCompilerArgs.add("-Xsuppress-version-warnings") } + freeCompilerArgs.add("-Xjdk-release=1.8") + } +} + +// Only main +tasks.compileKotlin { + compilerOptions { + allWarningsAsErrors = true } - jvmToolchain(jdkToolchainVersion) } java { @@ -29,7 +36,6 @@ java { targetCompatibility = JavaVersion.VERSION_1_8 } - dependencies { api(project(":kotlinx-serialization-core")) api("org.jetbrains.kotlin:kotlin-stdlib")