From c5dd4d38fc8df788b9f599e11de6bbbac79cac73 Mon Sep 17 00:00:00 2001 From: Ilya Matveev Date: Fri, 31 Mar 2017 20:12:41 +0700 Subject: [PATCH] gradle-plugin: generate build task only for supported platforms --- .../src/main/kotlin/KonanInteropConfig.kt | 3 ++- tools/gradle-plugin/src/main/kotlin/KonanPlugin.kt | 13 +++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/tools/gradle-plugin/src/main/kotlin/KonanInteropConfig.kt b/tools/gradle-plugin/src/main/kotlin/KonanInteropConfig.kt index 14b8ad66504..cfde3a1e383 100644 --- a/tools/gradle-plugin/src/main/kotlin/KonanInteropConfig.kt +++ b/tools/gradle-plugin/src/main/kotlin/KonanInteropConfig.kt @@ -60,7 +60,8 @@ open class KonanInteropConfig( } fun target(value: String) = with(generateStubsTask) { - target = value + generateStubsTask.target = value + compileStubsTask.target = value } fun compilerOpts(vararg values: String) = with(generateStubsTask) { diff --git a/tools/gradle-plugin/src/main/kotlin/KonanPlugin.kt b/tools/gradle-plugin/src/main/kotlin/KonanPlugin.kt index 44a6cf9d808..a7bbf30387c 100644 --- a/tools/gradle-plugin/src/main/kotlin/KonanPlugin.kt +++ b/tools/gradle-plugin/src/main/kotlin/KonanPlugin.kt @@ -112,6 +112,15 @@ class KonanPlugin: Plugin { } } + private fun String.isSupported(): Boolean { + val os = CompilerDownloadTask.simpleOsName() + return when (os) { + "macos" -> this == "macbook" || this == "iphone" + "linux" -> this == "linux" || this == "raspberrypi" + else -> false + } + } + // TODO: Create default config? what about test sources? override fun apply(project: ProjectInternal?) { if (project == null) { return } @@ -122,8 +131,8 @@ class KonanPlugin: Plugin { project.delete(project.konanBuildRoot) } getTask(project, "build").apply { - dependsOn(project.tasks.withType(KonanCompileTask::class.java)) - dependsOn(project.tasks.withType(KonanInteropTask::class.java)) + dependsOn(project.tasks.withType(KonanCompileTask::class.java).matching { it.target?.isSupported() ?: true }) + dependsOn(project.tasks.withType(KonanInteropTask::class.java).matching { it.target?.isSupported() ?: true }) } }