From 3c87d4c35bb556d4a9992a3d902dea3b511d9887 Mon Sep 17 00:00:00 2001 From: Filipp Zhinkin Date: Thu, 27 Mar 2025 16:00:25 -0400 Subject: [PATCH 1/5] Adopt KUP requirements imposed by KT-75078 Closes #212 --- build.gradle.kts | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 0ed10d89..e2e6f95f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -46,10 +46,29 @@ allprojects { } } + val setAllWarningsAsError = providers.gradleProperty("kotlin_Werror_override").map { + when (it) { + "enable" -> true + "disable" -> false + else -> error("Unexpected value for 'kotlin_Werror_override' property: $it") + } + } + tasks.withType(KotlinCompilationTask::class).configureEach { compilerOptions { - allWarningsAsErrors = true - freeCompilerArgs.add("-Xexpect-actual-classes") + if (setAllWarningsAsError.orNull != false) { + allWarningsAsErrors = true + } else { + freeCompilerArgs.addAll( + "-Wextra", + "-Xuse-fir-experimental-checkers" + ) + } + freeCompilerArgs.addAll( + "-Xexpect-actual-classes", + "-Xreport-all-warnings", + "-Xrender-internal-diagnostic-names" + ) } if (this is KotlinJsCompile) { compilerOptions { From 123615bd2161da837532f5ae88f50b7aff6bd502 Mon Sep 17 00:00:00 2001 From: Filipp Zhinkin Date: Wed, 23 Apr 2025 08:52:08 -0400 Subject: [PATCH 2/5] Log when kotlin_Werror_override is set to false --- build.gradle.kts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/build.gradle.kts b/build.gradle.kts index e2e6f95f..c22bddb2 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -63,6 +63,8 @@ allprojects { "-Wextra", "-Xuse-fir-experimental-checkers" ) + logger.info("kotlin_Werror_override was set to 'disable'") + logger.info("Using -Wextra and -Xuse-fir-experimental-checkers compiler options") } freeCompilerArgs.addAll( "-Xexpect-actual-classes", From 216cd0a9eea9701a67cc260653cbea7939134b97 Mon Sep 17 00:00:00 2001 From: Filipp Zhinkin Date: Wed, 23 Apr 2025 09:11:01 -0400 Subject: [PATCH 3/5] Support kotlin_additional_cli_options --- build.gradle.kts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/build.gradle.kts b/build.gradle.kts index c22bddb2..b56e5d8d 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -81,6 +81,14 @@ allprojects { freeCompilerArgs.add("-Xjvm-default=disable") } } + + val extraOpts = providers.gradleProperty("kotlin_additional_cli_options").orNull + extraOpts?.split(' ')?.let { opts -> + if (opts.isNotEmpty()) { + logger.info("Adding additional compiler options: ${opts.joinToString(", ")}") + compilerOptions.freeCompilerArgs.addAll(opts) + } + } } } From fca9af3e20b543e670b27aba3354617f2e3562d1 Mon Sep 17 00:00:00 2001 From: Filipp Zhinkin Date: Wed, 23 Apr 2025 09:43:15 -0400 Subject: [PATCH 4/5] Use the same logging format as kotlinx-serialization does --- build.gradle.kts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index b56e5d8d..653c2885 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -63,8 +63,6 @@ allprojects { "-Wextra", "-Xuse-fir-experimental-checkers" ) - logger.info("kotlin_Werror_override was set to 'disable'") - logger.info("Using -Wextra and -Xuse-fir-experimental-checkers compiler options") } freeCompilerArgs.addAll( "-Xexpect-actual-classes", @@ -85,10 +83,14 @@ allprojects { val extraOpts = providers.gradleProperty("kotlin_additional_cli_options").orNull extraOpts?.split(' ')?.let { opts -> if (opts.isNotEmpty()) { - logger.info("Adding additional compiler options: ${opts.joinToString(", ")}") compilerOptions.freeCompilerArgs.addAll(opts) } } + + doFirst { + logger.info("Added Kotlin compiler flags: ${compilerOptions.freeCompilerArgs.get().joinToString(", ")}") + logger.info("allWarningsAsErrors=${compilerOptions.allWarningsAsErrors.get()}") + } } } From 9e803b1722bfac9d790d080e9ef8d5d5791a364e Mon Sep 17 00:00:00 2001 From: Filipp Zhinkin Date: Wed, 30 Apr 2025 11:44:24 -0400 Subject: [PATCH 5/5] fixup! Support kotlin_additional_cli_options --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 653c2885..88d2c31a 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -81,7 +81,7 @@ allprojects { } val extraOpts = providers.gradleProperty("kotlin_additional_cli_options").orNull - extraOpts?.split(' ')?.let { opts -> + extraOpts?.split(' ')?.map(String::trim)?.filter(String::isNotBlank)?.let { opts -> if (opts.isNotEmpty()) { compilerOptions.freeCompilerArgs.addAll(opts) }