@@ -18,9 +18,13 @@ import org.jetbrains.kotlin.gradle.plugin.*
18
18
import org.jetbrains.kotlin.gradle.plugin.mpp.*
19
19
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.*
20
20
import org.jetbrains.kotlin.gradle.targets.jvm.*
21
+ import org.jetbrains.kotlin.gradle.tasks.*
21
22
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
22
23
import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile
24
+ import org.jetbrains.kotlin.tooling.core.*
23
25
import java.io.*
26
+ import kotlin.reflect.*
27
+ import kotlin.reflect.full.*
24
28
25
29
object Java9Modularity {
26
30
@@ -108,12 +112,14 @@ object Java9Modularity {
108
112
compileTask : KotlinCompile ,
109
113
sourceFile : File
110
114
): TaskProvider <out KotlinJvmCompile > {
111
- apply<KotlinBaseApiPlugin >()
115
+ apply<KotlinApiPlugin >()
112
116
val verifyModuleTaskName = " verify${compileTask.name.removePrefix(" compile" ).capitalize()} Module"
113
117
// work-around for https://youtrack.jetbrains.com/issue/KT-60542
114
- val verifyModuleTask = plugins
115
- .findPlugin(KotlinBaseApiPlugin ::class )!!
116
- .registerKotlinJvmCompileTask(verifyModuleTaskName)
118
+ val kotlinApiPlugin = plugins.getPlugin(KotlinApiPlugin ::class )
119
+ val verifyModuleTask = kotlinApiPlugin.registerKotlinJvmCompileTask(
120
+ verifyModuleTaskName,
121
+ compileTask.compilerOptions.moduleName.get()
122
+ )
117
123
verifyModuleTask {
118
124
group = VERIFICATION_GROUP
119
125
description = " Verify Kotlin sources for JPMS problems"
@@ -126,13 +132,14 @@ object Java9Modularity {
126
132
source(sourceFile)
127
133
destinationDirectory.set(temporaryDir)
128
134
multiPlatformEnabled.set(compileTask.multiPlatformEnabled)
129
- kotlinOptions {
130
- moduleName = compileTask.kotlinOptions.moduleName
131
- jvmTarget = " 9"
135
+ compilerOptions {
136
+ jvmTarget.set(JvmTarget .JVM_9 )
132
137
// To support LV override when set in aggregate builds
133
- languageVersion = compileTask.kotlinOptions.languageVersion
134
- freeCompilerArgs + = listOf (" -Xjdk-release=9" , " -Xsuppress-version-warnings" , " -Xexpect-actual-classes" )
135
- options.optIn.addAll(compileTask.kotlinOptions.options.optIn)
138
+ languageVersion.set(compileTask.compilerOptions.languageVersion)
139
+ freeCompilerArgs.addAll(
140
+ listOf (" -Xjdk-release=9" , " -Xsuppress-version-warnings" , " -Xexpect-actual-classes" )
141
+ )
142
+ optIn.addAll(compileTask.kotlinOptions.options.optIn)
136
143
}
137
144
// work-around for https://youtrack.jetbrains.com/issue/KT-60583
138
145
inputs.files(
@@ -145,12 +152,19 @@ object Java9Modularity {
145
152
}
146
153
).withPropertyName(" moduleInfosOfLibraries" )
147
154
this as KotlinCompile
148
- // part of work-around for https://youtrack.jetbrains.com/issue/KT-60541
149
- @Suppress(" DEPRECATION" )
150
- ownModuleName.set(compileTask.kotlinOptions.moduleName)
151
- // part of work-around for https://youtrack.jetbrains.com/issue/KT-60541
152
- @Suppress(" INVISIBLE_MEMBER" )
153
- commonSourceSet.from(compileTask.commonSourceSet)
155
+ val kotlinPluginVersion = KotlinToolingVersion (kotlinApiPlugin.pluginVersion)
156
+ if (kotlinPluginVersion <= KotlinToolingVersion (" 1.9.255" )) {
157
+ // part of work-around for https://youtrack.jetbrains.com/issue/KT-60541
158
+ @Suppress(" UNCHECKED_CAST" )
159
+ val ownModuleNameProp = (this ::class .superclasses.first() as KClass <AbstractKotlinCompile <* >>)
160
+ .declaredMemberProperties
161
+ .find { it.name == " ownModuleName" }
162
+ ?.get(this ) as ? Property <String >
163
+ ownModuleNameProp?.set(compileTask.kotlinOptions.moduleName)
164
+ // part of work-around for https://youtrack.jetbrains.com/issue/KT-60541
165
+ @Suppress(" INVISIBLE_MEMBER" )
166
+ commonSourceSet.from(compileTask.commonSourceSet)
167
+ }
154
168
@OptIn(InternalKotlinGradlePluginApi ::class )
155
169
apply {
156
170
multiplatformStructure.refinesEdges.set(compileTask.multiplatformStructure.refinesEdges)
0 commit comments