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