Rework Gradle subplugins application in Kotlin/Native
This commit is contained in:
+14
-6
@@ -17,6 +17,7 @@ import org.gradle.api.plugins.BasePlugin
|
||||
import org.gradle.api.provider.Provider
|
||||
import org.gradle.api.tasks.Copy
|
||||
import org.gradle.api.tasks.Exec
|
||||
import org.gradle.api.tasks.TaskProvider
|
||||
import org.gradle.language.base.plugins.LifecycleBasePlugin
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation.Companion.MAIN_COMPILATION_NAME
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation.Companion.TEST_COMPILATION_NAME
|
||||
@@ -47,11 +48,18 @@ open class KotlinNativeTargetConfigurator<T : KotlinNativeTarget>(
|
||||
return buildDir.resolve("classes/kotlin/$targetSubDirectory${compilation.name}")
|
||||
}
|
||||
|
||||
private fun AbstractKotlinNativeCompile<*>.addCompilerPlugins() {
|
||||
SubpluginEnvironment
|
||||
.loadSubplugins(project, kotlinPluginVersion)
|
||||
.addSubpluginOptions(project, this, compilerPluginOptions)
|
||||
compilerPluginClasspath = project.configurations.getByName(NATIVE_COMPILER_PLUGIN_CLASSPATH_CONFIGURATION_NAME)
|
||||
private fun addCompilerPlugins(compilation: AbstractKotlinNativeCompilation) {
|
||||
val project = compilation.target.project
|
||||
|
||||
project.whenEvaluated {
|
||||
SubpluginEnvironment
|
||||
.loadSubplugins(project, kotlinPluginVersion)
|
||||
.addSubpluginOptions(project, compilation)
|
||||
|
||||
compilation.compileKotlinTaskProvider.configure {
|
||||
it.compilerPluginClasspath = project.configurations.getByName(NATIVE_COMPILER_PLUGIN_CLASSPATH_CONFIGURATION_NAME)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// region Artifact creation.
|
||||
@@ -121,7 +129,6 @@ open class KotlinNativeTargetConfigurator<T : KotlinNativeTarget>(
|
||||
it.destinationDir = binary.outputDirectory
|
||||
}
|
||||
|
||||
addCompilerPlugins()
|
||||
|
||||
if (binary !is TestExecutable) {
|
||||
tasks.named(binary.compilation.target.artifactsTaskName).configure { it.dependsOn(result) }
|
||||
@@ -177,6 +184,7 @@ open class KotlinNativeTargetConfigurator<T : KotlinNativeTarget>(
|
||||
}
|
||||
createRegularKlibArtifact(compilation, compileTaskProvider)
|
||||
}
|
||||
addCompilerPlugins(compilation)
|
||||
|
||||
|
||||
return compileTaskProvider
|
||||
|
||||
Reference in New Issue
Block a user