From ad3aac6f90515a8741435149b440b74767134f66 Mon Sep 17 00:00:00 2001 From: Ilya Matveev Date: Fri, 14 Dec 2018 19:13:17 +0700 Subject: [PATCH] Support free compiler args for binaries --- .../jetbrains/kotlin/gradle/plugin/mpp/NativeBinaries.kt | 6 ++++++ .../org/jetbrains/kotlin/gradle/tasks/KotlinNativeTasks.kt | 5 +++++ 2 files changed, 11 insertions(+) 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 8ac534ff4d6..faa4f168828 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 @@ -44,16 +44,22 @@ sealed class NativeBinary( var debuggable: Boolean = buildType.debuggable var optimized: Boolean = buildType.optimized + /** Additional options passed to the linker by the Kotlin/Native compiler. */ var linkerOpts: MutableList = mutableListOf() + /** Additional options passed to the linker by the Kotlin/Native compiler. */ fun linkerOpts(vararg options: String) { linkerOpts.addAll(options.toList()) } + /** Additional options passed to the linker by the Kotlin/Native compiler. */ fun linkerOpts(options: Iterable) { linkerOpts.addAll(options) } + /** Additional arguments passed to the Kotlin/Native compiler. */ + var freeCompilerArgs: MutableList = mutableListOf() + // Link task access. val linkTaskName: String get() = lowerCamelCaseName("link", name, target.targetName) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinNativeTasks.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinNativeTasks.kt index 87dca6570dc..050ef120224 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinNativeTasks.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinNativeTasks.kt @@ -374,6 +374,10 @@ open class KotlinNativeLink : AbstractKotlinNativeCompile() { val embedBitcode: Framework.BitcodeEmbeddingMode get() = (binary as? Framework)?.embedBitcode ?: Framework.BitcodeEmbeddingMode.DISABLE + @get:Input + val freeCompilerArgs: List + get() = binary.freeCompilerArgs + override fun buildArgs(defaultsOnly: Boolean): List { val superArgs = super.buildArgs(defaultsOnly) return mutableListOf().apply { @@ -388,6 +392,7 @@ open class KotlinNativeLink : AbstractKotlinNativeCompile() { exportLibraries.files.filterExternalKlibs(project).forEach { add("-Xexport-library=${it.absolutePath}") } + addAll(freeCompilerArgs) } }