[Gradle, K/N] Compute binaries output dir lazily
#KT-52303 Fixed
This commit is contained in:
committed by
Space
parent
5054e301be
commit
d7c1f6765e
+8
-2
@@ -13,6 +13,8 @@ import org.gradle.api.Project
|
|||||||
import org.gradle.api.artifacts.Dependency
|
import org.gradle.api.artifacts.Dependency
|
||||||
import org.gradle.api.attributes.Attribute
|
import org.gradle.api.attributes.Attribute
|
||||||
import org.gradle.api.attributes.HasAttributes
|
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.provider.Provider
|
||||||
import org.gradle.api.tasks.AbstractExecTask
|
import org.gradle.api.tasks.AbstractExecTask
|
||||||
import org.gradle.api.tasks.TaskProvider
|
import org.gradle.api.tasks.TaskProvider
|
||||||
@@ -97,9 +99,13 @@ sealed class NativeBinary(
|
|||||||
|
|
||||||
// Output access.
|
// Output access.
|
||||||
// TODO: Provide output configurations and integrate them with Gradle Native.
|
// 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()
|
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 {
|
val outputFile: File by lazy {
|
||||||
|
|||||||
+1
-3
@@ -501,9 +501,7 @@ constructor(
|
|||||||
disallowSourceChanges()
|
disallowSourceChanges()
|
||||||
}
|
}
|
||||||
|
|
||||||
override val destinationDirectory: DirectoryProperty = objectFactory.directoryProperty().apply {
|
override val destinationDirectory: DirectoryProperty = binary.outputDirectoryProperty
|
||||||
set(binary.outputDirectory)
|
|
||||||
}
|
|
||||||
|
|
||||||
override val outputKind: CompilerOutputKind
|
override val outputKind: CompilerOutputKind
|
||||||
@Input get() = binary.outputKind.compilerOutputKind
|
@Input get() = binary.outputKind.compilerOutputKind
|
||||||
|
|||||||
Reference in New Issue
Block a user