From 618c53956f802199c4a4fab89317126916dd4871 Mon Sep 17 00:00:00 2001 From: Ilya Matveev Date: Mon, 22 Jan 2018 20:36:07 +0700 Subject: [PATCH] [gradle-plugin] Support headerFile property for dynamic libraries --- .../jetbrains/kotlin/gradle/plugin/tasks/KonanCompileTask.kt | 4 ++++ .../kotlin/gradle/plugin/test/PathSpecification.groovy | 3 +++ 2 files changed, 7 insertions(+) diff --git a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/tasks/KonanCompileTask.kt b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/tasks/KonanCompileTask.kt index 2af9b983871..c59111db423 100644 --- a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/tasks/KonanCompileTask.kt +++ b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/tasks/KonanCompileTask.kt @@ -21,6 +21,7 @@ import org.gradle.api.tasks.* import org.jetbrains.kotlin.gradle.plugin.* import org.jetbrains.kotlin.konan.target.CompilerOutputKind import org.jetbrains.kotlin.konan.util.visibleName +import java.io.File enum class Produce(val cliOption: String, val kind: CompilerOutputKind) { PROGRAM("program", CompilerOutputKind.PROGRAM), @@ -179,6 +180,9 @@ open class KonanCompileProgramTask: KonanCompileTask() { open class KonanCompileDynamicTask: KonanCompileTask() { override val produce: Produce get() = Produce.DYNAMIC + + val headerFile: File + @OutputFile get() = destinationDir.resolve("$artifactPrefix${artifactName}_api.h") } open class KonanCompileFrameworkTask: KonanCompileTask() { diff --git a/tools/kotlin-native-gradle-plugin/src/test/groovy/org/jetbrains/kotlin/gradle/plugin/test/PathSpecification.groovy b/tools/kotlin-native-gradle-plugin/src/test/groovy/org/jetbrains/kotlin/gradle/plugin/test/PathSpecification.groovy index a586d227a38..45e87e8de3c 100644 --- a/tools/kotlin-native-gradle-plugin/src/test/groovy/org/jetbrains/kotlin/gradle/plugin/test/PathSpecification.groovy +++ b/tools/kotlin-native-gradle-plugin/src/test/groovy/org/jetbrains/kotlin/gradle/plugin/test/PathSpecification.groovy @@ -38,6 +38,9 @@ class PathSpecification extends BaseKonanSpecification { if (!target.artifact.exists()) throw new Exception("Artifact doesn't exist. Type: \${artifact.name}, target: \${target.target}") } } + for (target in konanArtifacts.dynamic) { + if (!target.headerFile.exists()) throw new Exception("Header file doesn't exist. Target: \${target.target}") + } } } """.stripIndent())