gradle-plugin: generate build task only for supported platforms

This commit is contained in:
Ilya Matveev
2017-03-31 20:12:41 +07:00
committed by ilmat192
parent 951598cca9
commit c5dd4d38fc
2 changed files with 13 additions and 3 deletions
@@ -60,7 +60,8 @@ open class KonanInteropConfig(
} }
fun target(value: String) = with(generateStubsTask) { fun target(value: String) = with(generateStubsTask) {
target = value generateStubsTask.target = value
compileStubsTask.target = value
} }
fun compilerOpts(vararg values: String) = with(generateStubsTask) { fun compilerOpts(vararg values: String) = with(generateStubsTask) {
@@ -112,6 +112,15 @@ class KonanPlugin: Plugin<ProjectInternal> {
} }
} }
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? // TODO: Create default config? what about test sources?
override fun apply(project: ProjectInternal?) { override fun apply(project: ProjectInternal?) {
if (project == null) { return } if (project == null) { return }
@@ -122,8 +131,8 @@ class KonanPlugin: Plugin<ProjectInternal> {
project.delete(project.konanBuildRoot) project.delete(project.konanBuildRoot)
} }
getTask(project, "build").apply { getTask(project, "build").apply {
dependsOn(project.tasks.withType(KonanCompileTask::class.java)) dependsOn(project.tasks.withType(KonanCompileTask::class.java).matching { it.target?.isSupported() ?: true })
dependsOn(project.tasks.withType(KonanInteropTask::class.java)) dependsOn(project.tasks.withType(KonanInteropTask::class.java).matching { it.target?.isSupported() ?: true })
} }
} }