From 9b148303f4242e7fc65685c8c1609ed39749d1ff Mon Sep 17 00:00:00 2001 From: Ilya Matveev Date: Fri, 20 Jul 2018 19:55:38 +0700 Subject: [PATCH] [gradle-plugin] Add 'targets' info task --- .../plugins/KotlinNativeBasePlugin.kt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/plugins/KotlinNativeBasePlugin.kt b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/plugins/KotlinNativeBasePlugin.kt index b979204390b..29a0ffa858d 100644 --- a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/plugins/KotlinNativeBasePlugin.kt +++ b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/plugins/KotlinNativeBasePlugin.kt @@ -27,6 +27,7 @@ import org.gradle.api.file.RegularFileProperty import org.gradle.api.internal.FeaturePreviews import org.gradle.api.internal.project.ProjectInternal import org.gradle.api.plugins.BasePlugin +import org.gradle.api.plugins.HelpTasksPlugin import org.gradle.api.provider.Provider import org.gradle.api.provider.ProviderFactory import org.gradle.api.tasks.TaskContainer @@ -81,6 +82,19 @@ class KotlinNativeBasePlugin: Plugin { private val KonanTarget.canRunOnHost: Boolean get() = this == HostManager.host + private fun Project.addTargetInfoTask() = tasks.create("targets").apply { + group = HelpTasksPlugin.HELP_GROUP + description = "Prints Kotlin/Native targets available for this project" + doLast { _ -> + components.withType(AbstractKotlinNativeComponent::class.java) { component -> + logger.lifecycle("Component '${component.name}' targets:") + component.konanTargets.get().forEach { + logger.lifecycle(it.name) + } + logger.lifecycle("") + } + } + } // TODO: Rework this part: the task should be created in the binary constructor (if it is possible). private fun Project.addCompilationTasks() { @@ -186,6 +200,7 @@ class KotlinNativeBasePlugin: Plugin { addCompilerDownloadingTask() addCompilationTasks() + addTargetInfoTask() } companion object {