Skip to content

Commit 35a9edc

Browse files
qwwdfsadGoooler
andauthored
Migrate from kotlinOptions to compilerOptions (#2746)
* WA for KT-68661 * Use Java 11 toolchain Co-authored-by: Zongle Wang <[email protected]>
1 parent 0b5145c commit 35a9edc

File tree

8 files changed

+51
-57
lines changed

8 files changed

+51
-57
lines changed

benchmark/build.gradle.kts

+4-6
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import org.gradle.kotlin.dsl.support.*
12
import org.jetbrains.kotlin.gradle.dsl.*
23
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
34

@@ -40,15 +41,12 @@ tasks.assemble {
4041
dependsOn(tasks.jmhClasses)
4142
}
4243

43-
tasks.withType<KotlinCompile>().configureEach {
44+
kotlin {
4445
compilerOptions {
4546
jvmTarget = JvmTarget.JVM_1_8
46-
}
47-
48-
kotlinOptions {
4947
if (overriddenLanguageVersion != null) {
50-
languageVersion = overriddenLanguageVersion
51-
freeCompilerArgs += "-Xsuppress-version-warnings"
48+
languageVersion = KotlinVersion.fromVersion(overriddenLanguageVersion!!)
49+
freeCompilerArgs.add("-Xsuppress-version-warnings")
5250
}
5351
}
5452
}

buildSrc/src/main/kotlin/Java9Modularity.kt

+4-2
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import org.jetbrains.kotlin.gradle.targets.jvm.*
2121
import org.jetbrains.kotlin.gradle.tasks.*
2222
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
2323
import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile
24+
import org.jetbrains.kotlin.gradle.utils.*
2425
import org.jetbrains.kotlin.tooling.core.*
2526
import java.io.*
2627
import kotlin.reflect.*
@@ -113,6 +114,7 @@ object Java9Modularity {
113114
sourceFile: File
114115
): TaskProvider<out KotlinJvmCompile> {
115116
apply<KotlinApiPlugin>()
117+
@Suppress("DEPRECATION")
116118
val verifyModuleTaskName = "verify${compileTask.name.removePrefix("compile").capitalize()}Module"
117119
// work-around for https://youtrack.jetbrains.com/issue/KT-60542
118120
val kotlinApiPlugin = plugins.getPlugin(KotlinApiPlugin::class)
@@ -139,7 +141,7 @@ object Java9Modularity {
139141
freeCompilerArgs.addAll(
140142
listOf("-Xjdk-release=9", "-Xsuppress-version-warnings", "-Xexpect-actual-classes")
141143
)
142-
optIn.addAll(compileTask.kotlinOptions.options.optIn)
144+
optIn.addAll(compileTask.compilerOptions.optIn)
143145
}
144146
// work-around for https://youtrack.jetbrains.com/issue/KT-60583
145147
inputs.files(
@@ -160,7 +162,7 @@ object Java9Modularity {
160162
.declaredMemberProperties
161163
.find { it.name == "ownModuleName" }
162164
?.get(this) as? Property<String>
163-
ownModuleNameProp?.set(compileTask.kotlinOptions.moduleName)
165+
ownModuleNameProp?.set(compileTask.compilerOptions.moduleName)
164166
}
165167

166168
val taskKotlinLanguageVersion = compilerOptions.languageVersion.orElse(KotlinVersion.DEFAULT)

buildSrc/src/main/kotlin/Projects.kt

+2
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ fun Project.propertyIsTrue(propertyName: String): Boolean {
1212
return (findProperty(propertyName) as? String?).equals("true", true)
1313
}
1414

15+
val Project.jdkToolchainVersion: Int get() = findProperty("jdk_toolchain_version").toString().toInt()
16+
1517
val Project.overriddenLanguageVersion : String?
1618
get() = findProperty("kotlin_language_version") as String?
1719

buildSrc/src/main/kotlin/source-sets-conventions.gradle.kts

+24-28
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,19 @@
55
@file:OptIn(ExperimentalWasmDsl::class)
66

77
import org.gradle.kotlin.dsl.*
8+
import org.jetbrains.kotlin.gradle.*
9+
import org.jetbrains.kotlin.gradle.dsl.*
810
import org.jetbrains.kotlin.gradle.plugin.mpp.*
9-
import org.jetbrains.kotlin.gradle.targets.js.dsl.*
11+
import org.jetbrains.kotlin.gradle.targets.js.dsl.ExperimentalWasmDsl
1012
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension
1113
import org.jetbrains.kotlin.gradle.targets.native.tasks.*
14+
import org.jetbrains.kotlin.gradle.tasks.*
1215
import org.jetbrains.kotlin.gradle.testing.*
1316

1417
plugins {
1518
kotlin("multiplatform")
1619
}
1720

18-
java {
19-
toolchain {
20-
languageVersion.set(JavaLanguageVersion.of(11))
21-
}
22-
}
23-
2421
tasks.withType<JavaCompile>().configureEach {
2522
options.release = 8
2623
}
@@ -30,13 +27,13 @@ kotlin {
3027

3128
jvm {
3229
withJava()
33-
compilations.configureEach {
34-
kotlinOptions {
35-
jvmTarget = "1.8"
36-
freeCompilerArgs += "-Xjdk-release=1.8"
37-
}
30+
@OptIn(ExperimentalKotlinGradlePluginApi::class)
31+
compilerOptions {
32+
jvmTarget = JvmTarget.JVM_1_8
33+
freeCompilerArgs.add("-Xjdk-release=1.8")
3834
}
3935
}
36+
jvmToolchain(jdkToolchainVersion)
4037

4138
js {
4239
nodejs {
@@ -46,11 +43,11 @@ kotlin {
4643
}
4744
}
4845
}
49-
compilations.matching { it.name == "main" || it.name == "test" }.configureEach {
50-
kotlinOptions {
51-
sourceMap = true
52-
moduleKind = "umd"
53-
}
46+
47+
@OptIn(ExperimentalKotlinGradlePluginApi::class)
48+
compilerOptions {
49+
sourceMap = true
50+
moduleKind = JsModuleKind.MODULE_UMD
5451
}
5552
}
5653

@@ -154,19 +151,18 @@ kotlin {
154151
optIn("kotlinx.serialization.ExperimentalSerializationApi")
155152
}
156153
}
154+
}
157155

158-
targets.all {
159-
compilations.all {
160-
kotlinOptions {
161-
if (overriddenLanguageVersion != null) {
162-
languageVersion = overriddenLanguageVersion
163-
freeCompilerArgs += "-Xsuppress-version-warnings"
164-
}
165-
freeCompilerArgs += "-Xexpect-actual-classes"
166-
}
167-
}
168-
compilations["main"].kotlinOptions {
156+
tasks.withType(KotlinCompilationTask::class).configureEach {
157+
compilerOptions {
158+
val isMainTaskName = name.startsWith("compileKotlin")
159+
if (isMainTaskName) {
169160
allWarningsAsErrors = true
170161
}
162+
if (overriddenLanguageVersion != null) {
163+
languageVersion = KotlinVersion.fromVersion(overriddenLanguageVersion!!)
164+
freeCompilerArgs.add("-Xsuppress-version-warnings")
165+
}
166+
freeCompilerArgs.add("-Xexpect-actual-classes")
171167
}
172168
}

core/build.gradle.kts

+1-1
Original file line numberDiff line numberDiff line change
@@ -71,5 +71,5 @@ tasks.withType<Jar>().named(kotlin.jvm().artifactsTaskName) {
7171
configureJava9ModuleInfo()
7272

7373
tasks.withType<KotlinJsIrLink>().configureEach {
74-
kotlinOptions.freeCompilerArgs += "-Xwasm-enable-array-range-checks"
74+
compilerOptions.freeCompilerArgs.add("-Xwasm-enable-array-range-checks")
7575
}

formats/hocon/build.gradle.kts

+11-14
Original file line numberDiff line numberDiff line change
@@ -12,24 +12,22 @@ plugins {
1212
alias(libs.plugins.serialization)
1313
}
1414

15-
tasks.compileKotlin {
16-
compilerOptions {
17-
allWarningsAsErrors = true
18-
}
19-
}
20-
21-
tasks.withType<KotlinCompile>().configureEach {
15+
kotlin {
16+
jvmToolchain(jdkToolchainVersion)
2217
compilerOptions {
2318
jvmTarget = JvmTarget.JVM_1_8
19+
if (overriddenLanguageVersion != null) {
20+
languageVersion = KotlinVersion.fromVersion(overriddenLanguageVersion!!)
21+
freeCompilerArgs.add("-Xsuppress-version-warnings")
22+
}
23+
freeCompilerArgs.add("-Xjdk-release=1.8")
2424
}
2525
}
2626

27-
tasks.withType<KotlinCompile>().configureEach {
28-
kotlinOptions {
29-
if (overriddenLanguageVersion != null) {
30-
languageVersion = overriddenLanguageVersion
31-
freeCompilerArgs += "-Xsuppress-version-warnings"
32-
}
27+
// Only main
28+
tasks.compileKotlin {
29+
compilerOptions {
30+
allWarningsAsErrors = true
3331
}
3432
}
3533

@@ -38,7 +36,6 @@ java {
3836
targetCompatibility = JavaVersion.VERSION_1_8
3937
}
4038

41-
4239
dependencies {
4340
api(project(":kotlinx-serialization-core"))
4441
api("org.jetbrains.kotlin:kotlin-stdlib")

gradle.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
group=org.jetbrains.kotlinx
66
version=1.7.2-SNAPSHOT
7-
7+
jdk_toolchain_version=11
88
# This version takes precedence if 'bootstrap' property passed to project
99
kotlin.version.snapshot=2.0.255-SNAPSHOT
1010
# Also set KONAN_LOCAL_DIST environment variable in bootstrap mode to auto-assign konan.home

guide/build.gradle.kts

+4-5
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import org.jetbrains.kotlin.gradle.dsl.KotlinVersion
12
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
23

34
/*
@@ -11,13 +12,11 @@ plugins {
1112

1213
kotlin {
1314
jvmToolchain(8)
14-
}
1515

16-
tasks.withType<KotlinCompile>().configureEach {
17-
kotlinOptions {
16+
compilerOptions {
1817
if (overriddenLanguageVersion != null) {
19-
languageVersion = overriddenLanguageVersion
20-
freeCompilerArgs += "-Xsuppress-version-warnings"
18+
languageVersion = KotlinVersion.fromVersion(overriddenLanguageVersion!!)
19+
freeCompilerArgs.add("-Xsuppress-version-warnings")
2120
}
2221
}
2322
}

0 commit comments

Comments
 (0)