diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/NativeBinaries.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/NativeBinaries.kt index cac1caee8ca..cfacf67fcd4 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/NativeBinaries.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/NativeBinaries.kt @@ -13,6 +13,8 @@ import org.gradle.api.Project import org.gradle.api.artifacts.Dependency import org.gradle.api.attributes.Attribute import org.gradle.api.attributes.HasAttributes +import org.gradle.api.file.Directory +import org.gradle.api.file.DirectoryProperty import org.gradle.api.provider.Provider import org.gradle.api.tasks.AbstractExecTask import org.gradle.api.tasks.TaskProvider @@ -97,9 +99,13 @@ sealed class NativeBinary( // Output access. // TODO: Provide output configurations and integrate them with Gradle Native. - var outputDirectory: File = with(project) { + var outputDirectory: File + get() = outputDirectoryProperty.get().asFile + set(value) = outputDirectoryProperty.set(value) + + val outputDirectoryProperty: DirectoryProperty = with(project) { val targetSubDirectory = target.disambiguationClassifier?.let { "$it/" }.orEmpty() - buildDir.resolve("bin/$targetSubDirectory${this@NativeBinary.name}") + objects.directoryProperty().convention(layout.buildDirectory.dir("bin/$targetSubDirectory${this@NativeBinary.name}")) } val outputFile: File by lazy { diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTasks.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTasks.kt index b7ea5f1c313..a76eeecbe61 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTasks.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTasks.kt @@ -501,9 +501,7 @@ constructor( disallowSourceChanges() } - override val destinationDirectory: DirectoryProperty = objectFactory.directoryProperty().apply { - set(binary.outputDirectory) - } + override val destinationDirectory: DirectoryProperty = binary.outputDirectoryProperty override val outputKind: CompilerOutputKind @Input get() = binary.outputKind.compilerOutputKind