From 2521dacc25bf5bcf4c95a6b0f6d62884b3bc2352 Mon Sep 17 00:00:00 2001 From: Sergey Mashkov Date: Thu, 13 Apr 2017 16:40:29 +0300 Subject: [PATCH] Maven: KT-17093 Import from maven: please provide a special tag for coroutine option --- .../kotlin/idea/maven/KotlinMavenImporter.kt | 10 ++++++---- idea/src/META-INF/maven.xml | 2 ++ .../jetbrains/kotlin/maven/KotlinCompileMojoBase.java | 11 +++++++++++ 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/idea/idea-maven/src/org/jetbrains/kotlin/idea/maven/KotlinMavenImporter.kt b/idea/idea-maven/src/org/jetbrains/kotlin/idea/maven/KotlinMavenImporter.kt index 6c0dd6a8741..f50307ec116 100644 --- a/idea/idea-maven/src/org/jetbrains/kotlin/idea/maven/KotlinMavenImporter.kt +++ b/idea/idea-maven/src/org/jetbrains/kotlin/idea/maven/KotlinMavenImporter.kt @@ -38,10 +38,7 @@ import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments import org.jetbrains.kotlin.cli.common.arguments.K2MetadataCompilerArguments import org.jetbrains.kotlin.cli.common.arguments.parseArguments import org.jetbrains.kotlin.compilerRunner.ArgumentUtils -import org.jetbrains.kotlin.config.JvmTarget -import org.jetbrains.kotlin.config.LanguageFeature -import org.jetbrains.kotlin.config.LanguageVersion -import org.jetbrains.kotlin.config.TargetPlatformKind +import org.jetbrains.kotlin.config.* import org.jetbrains.kotlin.extensions.ProjectExtensionDescriptor import org.jetbrains.kotlin.idea.facet.* import org.jetbrains.kotlin.idea.maven.configuration.KotlinMavenConfigurator @@ -118,6 +115,11 @@ class KotlinMavenImporter : MavenImporter(KOTLIN_PLUGIN_GROUP_ID, KOTLIN_PLUGIN_ arguments.languageVersion = configuration.getChild("languageVersion")?.text arguments.multiPlatform = configuration.getChild("multiPlatform")?.text?.trim()?.toBoolean() ?: false arguments.suppressWarnings = configuration.getChild("nowarn")?.text?.trim()?.toBoolean() ?: false + + configuration.getChild("experimentalCoroutines")?.text?.trim()?.let { coroutines -> + parseArguments(arrayOf("-Xcoroutines=$coroutines"), arguments, false) + } + when (arguments) { is K2JVMCompilerArguments -> { arguments.classpath = configuration.getChild("classpath")?.text diff --git a/idea/src/META-INF/maven.xml b/idea/src/META-INF/maven.xml index 217686b643f..e92f63c434f 100644 --- a/idea/src/META-INF/maven.xml +++ b/idea/src/META-INF/maven.xml @@ -19,6 +19,8 @@ + + diff --git a/libraries/tools/kotlin-maven-plugin/src/main/java/org/jetbrains/kotlin/maven/KotlinCompileMojoBase.java b/libraries/tools/kotlin-maven-plugin/src/main/java/org/jetbrains/kotlin/maven/KotlinCompileMojoBase.java index 89aaba5cb22..05e3ed907a8 100644 --- a/libraries/tools/kotlin-maven-plugin/src/main/java/org/jetbrains/kotlin/maven/KotlinCompileMojoBase.java +++ b/libraries/tools/kotlin-maven-plugin/src/main/java/org/jetbrains/kotlin/maven/KotlinCompileMojoBase.java @@ -174,6 +174,13 @@ public abstract class KotlinCompileMojoBase e @Parameter(property = "kotlin.compiler.apiVersion", required = false, readonly = false) protected String apiVersion; + /** + * possible values are: enable, error, warn + */ + @Parameter(property = "kotlin.compiler.experimental.coroutines", required = false, readonly = false) + @Nullable + protected String experimentalCoroutines; + /** * Additional command line arguments for Kotlin compiler. */ @@ -447,6 +454,10 @@ public abstract class KotlinCompileMojoBase e arguments.apiVersion = apiVersion; arguments.multiPlatform = multiPlatform; + if (experimentalCoroutines != null) { + compiler.parseArguments(new String[] { "-Xcoroutines=" + experimentalCoroutines }, arguments); + } + configureSpecificCompilerArguments(arguments); try {