diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinTargetConfigurator.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinTargetConfigurator.kt index 64db88a3386..a2b6a952a37 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinTargetConfigurator.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinTargetConfigurator.kt @@ -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 -> diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/NativeBinaries.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/NativeBinaries.kt index faa4f168828..5075ba7eaf9 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/NativeBinaries.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/NativeBinaries.kt @@ -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<*> diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/kotlinCompilations.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/kotlinCompilations.kt index 0c155d29a60..fbc7d3f5269 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/kotlinCompilations.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/kotlinCompilations.kt @@ -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)