Flip Gradle plugin kotlin_module names
Now common SourceSet output will have '_common' suffix, while all variants will have the same name - '<module-name>.kotlin_module'. This change is required for KSP as short-term workaround, as they are using some internal properties/methods, which was mangled before this change and hard to access in different variants. ^KT-52138 Fixed
This commit is contained in:
@@ -128,6 +128,14 @@ fun Project.createGradleCommonSourceSet(): SourceSet {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Common outputs will also produce '${project.name}.kotlin_module' file, so we need to avoid
|
||||||
|
// files clash
|
||||||
|
tasks.named<KotlinCompile>("compile${commonSourceSet.name.capitalize()}Kotlin") {
|
||||||
|
kotlinOptions {
|
||||||
|
moduleName = "${this@createGradleCommonSourceSet.name}_${commonSourceSet.name}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return commonSourceSet
|
return commonSourceSet
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -205,19 +213,6 @@ fun Project.wireGradleVariantToCommonGradleVariant(
|
|||||||
getByName(wireSourceSet.name).associateWith(getByName(commonSourceSet.name))
|
getByName(wireSourceSet.name).associateWith(getByName(commonSourceSet.name))
|
||||||
}
|
}
|
||||||
|
|
||||||
// Common outputs will also produce '${project.name}.kotlin_module' file, so we need to avoid
|
|
||||||
// files clash
|
|
||||||
val compileTaskName = if (wireSourceSet.name == SourceSet.MAIN_SOURCE_SET_NAME) {
|
|
||||||
"compileKotlin"
|
|
||||||
} else {
|
|
||||||
"compile${wireSourceSet.name.capitalize()}Kotlin"
|
|
||||||
}
|
|
||||||
tasks.named<KotlinCompile>(compileTaskName) {
|
|
||||||
kotlinOptions {
|
|
||||||
moduleName = "${this@wireGradleVariantToCommonGradleVariant.name}_${wireSourceSet.name}"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
configurations[wireSourceSet.apiConfigurationName].extendsFrom(
|
configurations[wireSourceSet.apiConfigurationName].extendsFrom(
|
||||||
configurations[commonSourceSet.apiConfigurationName]
|
configurations[commonSourceSet.apiConfigurationName]
|
||||||
)
|
)
|
||||||
@@ -403,6 +398,13 @@ fun Project.createGradlePluginVariant(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// KT-52138: Make module name the same for all variants, so KSP could access internal methods/properties
|
||||||
|
tasks.named<KotlinCompile>("compile${variantSourceSet.name.capitalize()}Kotlin") {
|
||||||
|
kotlinOptions {
|
||||||
|
moduleName = this@createGradlePluginVariant.name
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
variantSourceSet.compileOnlyConfigurationName(kotlinStdlib())
|
variantSourceSet.compileOnlyConfigurationName(kotlinStdlib())
|
||||||
variantSourceSet.compileOnlyConfigurationName("dev.gradleplugins:gradle-api:${variant.gradleApiVersion}")
|
variantSourceSet.compileOnlyConfigurationName("dev.gradleplugins:gradle-api:${variant.gradleApiVersion}")
|
||||||
|
|||||||
+1
-1
@@ -100,7 +100,7 @@ class UpToDateIT : KGPBaseTest() {
|
|||||||
val originalPaths get() = originalCompilerCp.map { it.replace("\\", "/") }.joinToString(", ") { "'$it'" }
|
val originalPaths get() = originalCompilerCp.map { it.replace("\\", "/") }.joinToString(", ") { "'$it'" }
|
||||||
|
|
||||||
override fun initProject(project: TestProject) = with(project) {
|
override fun initProject(project: TestProject) = with(project) {
|
||||||
val pluginSuffix = "kotlin_gradle_plugin"
|
val pluginSuffix = "kotlin_gradle_plugin_common"
|
||||||
buildGradle.appendText(
|
buildGradle.appendText(
|
||||||
"\nafterEvaluate { println 'compiler_cp=' + compileKotlin.getDefaultCompilerClasspath\$$pluginSuffix().toList() }"
|
"\nafterEvaluate { println 'compiler_cp=' + compileKotlin.getDefaultCompilerClasspath\$$pluginSuffix().toList() }"
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user