1+ import org.jetbrains.kotlin.gradle.dsl.KotlinVersion
2+ import org.jetbrains.kotlin.gradle.tasks.Kotlin2JsCompile
3+ import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask
4+ import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile
5+ import org.jetbrains.kotlin.gradle.tasks.KotlinNativeCompile
6+
17plugins {
28 id(" kotlinx.team.infra" ) version " 0.4.0-dev-85"
39 kotlin(" multiplatform" ) apply false
@@ -22,21 +28,16 @@ val modularJavaToolchainVersion by ext(project.property("java.modularToolchainVe
2228
2329allprojects {
2430 repositories {
25- addTrainRepositories(project)
2631 mavenCentral()
27- }
28- tasks.withType< org.jetbrains.kotlin.gradle.tasks.KotlinCompile > ().configureEach {
29- // outputs the compiler version to logs so we can check whether the train configuration applied
30- kotlinOptions.freeCompilerArgs + = " -version"
31- }
32- tasks.withType< org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile > ().configureEach {
33- compilerOptions { freeCompilerArgs.add(" -Xjvm-default=disable" ) }
34- }
35- tasks.withType< org.jetbrains.kotlin.gradle.tasks.Kotlin2JsCompile > ().configureEach {
36- compilerOptions { freeCompilerArgs.add(" -Xpartial-linkage-loglevel=ERROR" ) }
37- }
38- tasks.withType< org.jetbrains.kotlin.gradle.tasks.KotlinNativeCompile > ().configureEach {
39- compilerOptions { freeCompilerArgs.add(" -Xpartial-linkage-loglevel=ERROR" ) }
32+
33+ // !! infrastructure for builds as a Kotlin user project
34+ val optionalKotlinArtifactsRepo = providers.gradleProperty(" kotlin_repo_url" ).orNull
35+ if (optionalKotlinArtifactsRepo != null ) {
36+ maven(url = optionalKotlinArtifactsRepo)
37+ logger.info(
38+ " [ktDT-as-KUP] Registered '$optionalKotlinArtifactsRepo ' as a dependency Maven repository for '${path} '"
39+ )
40+ }
4041 }
4142}
4243
@@ -61,3 +62,43 @@ dependencies {
6162 kover(project(" :kotlinx-datetime" ))
6263 kover(project(" :kotlinx-datetime-serialization" ))
6364}
65+
66+ // !! infrastructure for builds as a Kotlin user project
67+ subprojects {
68+ tasks.withType<KotlinCompilationTask <* >>().configureEach {
69+ compilerOptions {
70+ // output kotlin.git-searchable names of reported diagnostics
71+ freeCompilerArgs.add(" -Xrender-internal-diagnostic-names" )
72+
73+ with (providers) {
74+ gradleProperty(" kotlin_language_version" ).orNull?.let { optionalOverridingKotlinLV ->
75+ languageVersion.set(KotlinVersion .fromVersion(optionalOverridingKotlinLV))
76+ logger.info(
77+ " [ktDT-as-KUP] Overrode the Kotlin language version with $optionalOverridingKotlinLV for '$path '"
78+ )
79+ }
80+ gradleProperty(" kotlin_api_version" ).orNull?.let { optionalOverridingKotlinAPIV ->
81+ apiVersion.set(KotlinVersion .fromVersion(optionalOverridingKotlinAPIV))
82+ logger.info(
83+ " [ktDT-as-KUP] Overrode the Kotlin API version with $optionalOverridingKotlinAPIV for '$path '"
84+ )
85+ }
86+ }
87+ }
88+ }
89+ tasks.withType<KotlinJvmCompile >().configureEach {
90+ compilerOptions {
91+ freeCompilerArgs.add(" -Xjvm-default=disable" )
92+ }
93+ }
94+ tasks.withType<KotlinNativeCompile >().configureEach {
95+ compilerOptions {
96+ freeCompilerArgs.add(" -Xpartial-linkage-loglevel=error" )
97+ }
98+ }
99+ tasks.withType<Kotlin2JsCompile >().configureEach {
100+ compilerOptions {
101+ freeCompilerArgs.add(" -Xpartial-linkage-loglevel=error" )
102+ }
103+ }
104+ }
0 commit comments