1
1
import org.jetbrains.compose.desktop.application.dsl.TargetFormat
2
2
import org.jetbrains.compose.ExperimentalComposeLibrary
3
- import org.jetbrains.kotlin.gradle.dsl.KotlinVersion.Companion.fromVersion
4
3
import org.jetbrains.kotlin.gradle.targets.js.dsl.ExperimentalWasmDsl
5
4
import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig
6
5
@@ -11,7 +10,15 @@ plugins {
11
10
alias(libs.plugins.pluginCompose)
12
11
}
13
12
14
- val language_version: String? = project.properties[" language_version" ] as String?
13
+ val kotlinLanguageVersionOverride = providers.gradleProperty(" kotlin_language_version" )
14
+ .map(org.jetbrains.kotlin.gradle.dsl.KotlinVersion ::fromVersion)
15
+ .orNull
16
+ val kotlinApiVersionOverride = providers.gradleProperty(" kotlin_api_version" )
17
+ .map(org.jetbrains.kotlin.gradle.dsl.KotlinVersion ::fromVersion)
18
+ .orNull
19
+ val kotlinAdditionalCliOptions = providers.gradleProperty(" kotlin_additional_cli_options" )
20
+ .map { it.split(" " ) }
21
+ .orNull
15
22
16
23
kotlin {
17
24
androidTarget {
@@ -53,8 +60,37 @@ kotlin {
53
60
binaries.executable()
54
61
compilations.configureEach {
55
62
compileTaskProvider.configure {
56
- language_version?.let {
57
- compilerOptions.languageVersion.set(fromVersion(it))
63
+ if (kotlinLanguageVersionOverride != null ) {
64
+ compilerOptions {
65
+ languageVersion.set(kotlinLanguageVersionOverride)
66
+ logger.info(" [KUP] ${this @configure.path} : set LV to $kotlinLanguageVersionOverride " )
67
+ }
68
+ }
69
+ if (kotlinApiVersionOverride != null ) {
70
+ compilerOptions {
71
+ apiVersion.set(kotlinApiVersionOverride)
72
+ logger.info(" [KUP] ${this @configure.path} : set APIV to $kotlinApiVersionOverride " )
73
+ }
74
+ }
75
+ if (kotlinAdditionalCliOptions != null ) {
76
+ compilerOptions {
77
+ freeCompilerArgs.addAll(kotlinAdditionalCliOptions)
78
+ logger.info(
79
+ " [KUP] ${this @configure.path} : added ${
80
+ kotlinAdditionalCliOptions.joinToString(
81
+ " "
82
+ )
83
+ } "
84
+ )
85
+ }
86
+ }
87
+ compilerOptions {
88
+ // output reported warnings even in the presence of reported errors
89
+ freeCompilerArgs.add(" -Xreport-all-warnings" )
90
+ logger.info(" [KUP] ${this @configure.path} : added -Xreport-all-warnings" )
91
+ // output kotlin.git-searchable names of reported diagnostics
92
+ freeCompilerArgs.add(" -Xrender-internal-diagnostic-names" )
93
+ logger.info(" [KUP] ${this @configure.path} : added -Xrender-internal-diagnostic-names" )
58
94
}
59
95
}
60
96
}
0 commit comments