diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetConfigurator.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetConfigurator.kt index 57ac0f411d5..05499e085c1 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetConfigurator.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetConfigurator.kt @@ -69,7 +69,7 @@ open class KotlinNativeTargetConfigurator : AbstractKotl if (binary !is TestExecutable) { tasks.named(binary.compilation.target.artifactsTaskName).configure { it.dependsOn(result) } - tasks.maybeCreate(LifecycleBasePlugin.ASSEMBLE_TASK_NAME).dependsOn(result) + locateOrRegisterTask(LifecycleBasePlugin.ASSEMBLE_TASK_NAME).configure { it.dependsOn(result) } } if (binary is Framework) { @@ -438,17 +438,19 @@ open class KotlinNativeTargetConfigurator : AbstractKotl compilation.output.classesDirs.from(compileTaskProvider.flatMap { it.outputFile }) - project.project.tasks.getByName(compilation.compileAllTaskName).dependsOn(compileTaskProvider) + project.project.tasks.named(compilation.compileAllTaskName).configure { + it.dependsOn(compileTaskProvider) + } if (compilation.isMainCompilationData()) { if (compilation is KotlinNativeCompilation) { - project.project.tasks.getByName(compilation.target.artifactsTaskName).apply { - dependsOn(compileTaskProvider) + project.project.tasks.named(compilation.target.artifactsTaskName).configure { + it.dependsOn(compileTaskProvider) } } - project.project.tasks.getByName(LifecycleBasePlugin.ASSEMBLE_TASK_NAME).apply { - dependsOn(compileTaskProvider) + project.project.tasks.named(LifecycleBasePlugin.ASSEMBLE_TASK_NAME).configure { + it.dependsOn(compileTaskProvider) } } val shouldAddCompileOutputsToElements = compilation.owner is KotlinGradleVariant || compilation.isMainCompilationData() diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/NativeBinaries.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/NativeBinaries.kt index 07bfbea7e88..8eb7febdb51 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/NativeBinaries.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/NativeBinaries.kt @@ -131,7 +131,9 @@ class Executable constructor( get() = super.baseName set(value) { super.baseName = value - runTask?.executable = outputFile.absolutePath + runTaskProvider?.configure { + it.executable = outputFile.absolutePath + } } var entryPoint: String? = null @@ -155,8 +157,11 @@ class Executable constructor( * A task running this executable. * Returns null if the executables's target is not a host one (macosX64, linuxX64 or mingw64). */ + val runTaskProvider: TaskProvider>? + get() = runTaskName?.let { project.tasks.withType(AbstractExecTask::class.java).named(it) } + val runTask: AbstractExecTask<*>? - get() = runTaskName?.let { project.tasks.getByName(it) as AbstractExecTask<*> } + get() = runTaskProvider?.get() } class TestExecutable(