Support aggregate tasks to build binaries per compilation

This commit is contained in:
Ilya Matveev
2018-12-14 19:34:17 +07:00
parent ad3aac6f90
commit 9592a14367
3 changed files with 15 additions and 6 deletions
@@ -625,6 +625,17 @@ open class KotlinNativeTargetConfigurator(
}
}
// Create an aggregate link task for each compilation.
target.compilations.all {
project.tasks.create(it.binariesTaskName)
}
project.whenEvaluated {
target.binaries.forEach {
project.tasks.getByName(it.compilation.binariesTaskName).dependsOn(it.linkTaskName)
}
}
// Create binaries for output kinds declared using the old DSL.
project.whenEvaluated {
target.compilations.all { compilation ->
@@ -111,7 +111,6 @@ class Executable constructor(
lowerCamelCaseName("run", name, compilation.target.targetName)
}
// TODO: may make it lateinit (along with linkTasks)?
val runTask: AbstractExecTask<*>
get() = project.tasks.getByName(runTaskName) as AbstractExecTask<*>
@@ -421,11 +421,10 @@ class KotlinNativeCompilation(
)
override val compileAllTaskName: String
get() = lowerCamelCaseName(
target.disambiguationClassifier,
compilationName.takeIf { it != KotlinCompilation.MAIN_COMPILATION_NAME }.orEmpty(),
"klibrary"
)
get() = lowerCamelCaseName(target.disambiguationClassifier, compilationName, "klibrary")
val binariesTaskName: String
get() = lowerCamelCaseName(target.disambiguationClassifier, compilationName, "binaries")
override fun addSourcesToCompileTask(sourceSet: KotlinSourceSet, addAsCommonSources: Boolean) {
allSources.add(sourceSet.kotlin)