Gradle, native: Allow setting destination directory for binaries

Issue #KT-29395 fixed
This commit is contained in:
Ilya Matveev
2019-12-13 13:12:04 +07:00
parent df46dfc63d
commit 2c66c3b0b6
3 changed files with 11 additions and 2 deletions
@@ -122,7 +122,7 @@ open class KotlinNativeTargetConfigurator<T : KotlinNativeTarget>(
group = BasePlugin.BUILD_GROUP group = BasePlugin.BUILD_GROUP
description = "Links ${binary.outputKind.description} '${binary.name}' for a target '${target.name}'." description = "Links ${binary.outputKind.description} '${binary.name}' for a target '${target.name}'."
enabled = binary.konanTarget.enabledOnCurrentHost enabled = binary.konanTarget.enabledOnCurrentHost
destinationDir = binary.outputDirectory
addCompilerPlugins() addCompilerPlugins()
if (binary !is TestExecutable) { if (binary !is TestExecutable) {
@@ -83,7 +83,7 @@ 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.
val outputDirectory: File = with(project) { var outputDirectory: File = with(project) {
val targetSubDirectory = target.disambiguationClassifier?.let { "$it/" }.orEmpty() val targetSubDirectory = target.disambiguationClassifier?.let { "$it/" }.orEmpty()
buildDir.resolve("bin/$targetSubDirectory${this@NativeBinary.name}") buildDir.resolve("bin/$targetSubDirectory${this@NativeBinary.name}")
} }
@@ -425,6 +425,15 @@ open class KotlinNativeLink : AbstractKotlinNativeCompile<KotlinCommonToolOption
project.files(intermediateLibrary.get()).asFileTree project.files(intermediateLibrary.get()).asFileTree
} }
@OutputDirectory
override fun getDestinationDir(): File {
return binary.outputDirectory
}
override fun setDestinationDir(destinationDir: File) {
binary.outputDirectory = destinationDir
}
@get:Input @get:Input
override val outputKind: CompilerOutputKind override val outputKind: CompilerOutputKind
get() = binary.outputKind.compilerOutputKind get() = binary.outputKind.compilerOutputKind