diff --git a/buildSrc/src/main/kotlin/LibrariesCommon.kt b/buildSrc/src/main/kotlin/LibrariesCommon.kt index 9b846ef3bfb..8867cb91ec7 100644 --- a/buildSrc/src/main/kotlin/LibrariesCommon.kt +++ b/buildSrc/src/main/kotlin/LibrariesCommon.kt @@ -9,9 +9,10 @@ import org.gradle.api.JavaVersion import org.gradle.api.Project import org.gradle.api.file.FileCollection import org.gradle.api.tasks.compile.JavaCompile -import org.gradle.kotlin.dsl.get +import org.gradle.kotlin.dsl.* import org.gradle.process.CommandLineArgumentProvider import org.jetbrains.kotlin.gradle.tasks.KotlinCompile +import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile @JvmOverloads fun Project.configureJava9Compilation( @@ -62,3 +63,19 @@ private class Java9AdditionalArgumentsProvider( "-Xlint:-requires-transitive-automatic" // suppress automatic module transitive dependencies in kotlin.test ) } + +fun Project.configureFrontendIr() = tasks.withType().configureEach { + compilerOptions { + if (project.kotlinBuildProperties.useFirForLibraries) { + freeCompilerArgs.add("-Xuse-k2") + allWarningsAsErrors.set(false) + } else if (project.kotlinBuildProperties.useFir) { + freeCompilerArgs.add("-Xskip-prerelease-check") + } + + val renderDiagnosticNames by extra(project.kotlinBuildProperties.renderDiagnosticNames) + if (renderDiagnosticNames) { + freeCompilerArgs.add("-Xrender-internal-diagnostic-names") + } + } +} diff --git a/libraries/commonConfiguration.gradle b/libraries/commonConfiguration.gradle index a0f6c081ba7..ec4306b3f79 100644 --- a/libraries/commonConfiguration.gradle +++ b/libraries/commonConfiguration.gradle @@ -1,5 +1,3 @@ -import org.jetbrains.kotlin.gradle.tasks.KotlinCompile - ext.manifestAttributes = { Manifest manifest, Project project, String component = null, boolean multiRelease = false -> project.configure(manifest) { attributes \ @@ -48,19 +46,3 @@ task preparePublication { println("Deployment repository url: ${ext.repoUrl}") } } - -ext.configureFrontendIr = { Project project -> - project.tasks.withType(KotlinCompile.class) { task -> - task.kotlinOptions { - if (project.kotlinBuildProperties.useFirForLibraries) { - freeCompilerArgs += "-Xuse-k2" - allWarningsAsErrors = false - } else if (project.kotlinBuildProperties.useFir) { - freeCompilerArgs += "-Xskip-prerelease-check" - } - if (project.properties.renderDiagnosticNames) { - freeCompilerArgs += "-Xrender-internal-diagnostic-names" - } - } - } -} diff --git a/libraries/kotlin.test/junit/build.gradle b/libraries/kotlin.test/junit/build.gradle index e514f0e20cd..e0cd94d402e 100644 --- a/libraries/kotlin.test/junit/build.gradle +++ b/libraries/kotlin.test/junit/build.gradle @@ -42,7 +42,7 @@ compileTestKotlin { ] } -configureFrontendIr(project) +LibrariesCommon.configureFrontendIr(project) if (includeJava9) { LibrariesCommon.configureJava9Compilation(project, 'kotlin.test.junit') diff --git a/libraries/kotlin.test/junit5/build.gradle b/libraries/kotlin.test/junit5/build.gradle index ec42dc35f82..d1891c94cbf 100644 --- a/libraries/kotlin.test/junit5/build.gradle +++ b/libraries/kotlin.test/junit5/build.gradle @@ -43,7 +43,7 @@ compileTestKotlin { ] } -configureFrontendIr(project) +LibrariesCommon.configureFrontendIr(project) if (includeJava9) { LibrariesCommon.configureJava9Compilation(project, 'kotlin.test.junit5') diff --git a/libraries/kotlin.test/jvm/build.gradle b/libraries/kotlin.test/jvm/build.gradle index 4db1e3277ee..4f3511a61af 100644 --- a/libraries/kotlin.test/jvm/build.gradle +++ b/libraries/kotlin.test/jvm/build.gradle @@ -47,7 +47,7 @@ compileTestKotlin { ] } -configureFrontendIr(project) +LibrariesCommon.configureFrontendIr(project) if (includeJava9) { LibrariesCommon.configureJava9Compilation(project, 'kotlin.test') diff --git a/libraries/kotlin.test/testng/build.gradle b/libraries/kotlin.test/testng/build.gradle index 11db11eb6ee..407bb3d8439 100644 --- a/libraries/kotlin.test/testng/build.gradle +++ b/libraries/kotlin.test/testng/build.gradle @@ -44,7 +44,7 @@ compileTestKotlin { ] } -configureFrontendIr(project) +LibrariesCommon.configureFrontendIr(project) if (includeJava9) { LibrariesCommon.configureJava9Compilation(project, 'kotlin.test.testng') diff --git a/libraries/reflect/api/build.gradle b/libraries/reflect/api/build.gradle index 57cc99764bc..3c9296e026a 100644 --- a/libraries/reflect/api/build.gradle +++ b/libraries/reflect/api/build.gradle @@ -59,7 +59,7 @@ compileKotlin { } } -configureFrontendIr(project) +LibrariesCommon.configureFrontendIr(project) jar { manifestAttributes(manifest, project, "internal") diff --git a/libraries/stdlib/jdk7/build.gradle b/libraries/stdlib/jdk7/build.gradle index 10ee36753b8..07f3f08b71a 100644 --- a/libraries/stdlib/jdk7/build.gradle +++ b/libraries/stdlib/jdk7/build.gradle @@ -53,7 +53,7 @@ compileKotlin { compileTestKotlin { } -configureFrontendIr(project) +LibrariesCommon.configureFrontendIr(project) LibrariesCommon.configureJava9Compilation(project, 'kotlin.stdlib.jdk7') diff --git a/libraries/stdlib/jdk8/build.gradle b/libraries/stdlib/jdk8/build.gradle index 48445f008f2..f6a1af58eab 100644 --- a/libraries/stdlib/jdk8/build.gradle +++ b/libraries/stdlib/jdk8/build.gradle @@ -62,7 +62,7 @@ compileKotlin { compileTestKotlin { } -configureFrontendIr(project) +LibrariesCommon.configureFrontendIr(project) LibrariesCommon.configureJava9Compilation(project, 'kotlin.stdlib.jdk8') diff --git a/libraries/stdlib/jvm/build.gradle b/libraries/stdlib/jvm/build.gradle index c4deb364026..d98bc46b361 100644 --- a/libraries/stdlib/jvm/build.gradle +++ b/libraries/stdlib/jvm/build.gradle @@ -221,7 +221,7 @@ compileLongRunningTestKotlin { kotlinOptions.freeCompilerArgs += "-opt-in=kotlin.ExperimentalStdlibApi" } -configureFrontendIr(project) +LibrariesCommon.configureFrontendIr(project) tasks.register("longRunningTest", Test) { dependsOn(longRunningTestClasses) diff --git a/libraries/tools/kotlin-annotations-jvm/build.gradle b/libraries/tools/kotlin-annotations-jvm/build.gradle index 51ea90764dd..fdcaf4e6839 100644 --- a/libraries/tools/kotlin-annotations-jvm/build.gradle +++ b/libraries/tools/kotlin-annotations-jvm/build.gradle @@ -28,4 +28,4 @@ compileKotlin { kotlinOptions.moduleName = project.name } -configureFrontendIr(project) +LibrariesCommon.configureFrontendIr(project) diff --git a/libraries/tools/script-runtime/build.gradle b/libraries/tools/script-runtime/build.gradle index 16919d14e61..b7780fccd5c 100644 --- a/libraries/tools/script-runtime/build.gradle +++ b/libraries/tools/script-runtime/build.gradle @@ -32,4 +32,4 @@ compileKotlin { kotlinOptions.moduleName = project.name } -configureFrontendIr(project) +LibrariesCommon.configureFrontendIr(project)