diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/GradleKotlinFrameworkSupportProvider.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/GradleKotlinFrameworkSupportProvider.kt index 5d6f654cdeb..50180ee7ca5 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/GradleKotlinFrameworkSupportProvider.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/GradleKotlinFrameworkSupportProvider.kt @@ -289,8 +289,8 @@ open class GradleKotlinJSNodeFrameworkSupportProvider( override fun getDescription() = "A Kotlin library or application targeting JavaScript for Node.js" } -open class GradleKotlinMPPFrameworkSupportProvider : GradleKotlinFrameworkSupportProvider( - "KOTLIN_MPP", "Kotlin/Multiplatform", KotlinIcons.MPP +class GradleKotlinMPPFrameworkSupportProvider : GradleKotlinFrameworkSupportProvider( + "KOTLIN_MPP", "Kotlin (Multiplatform - Experimental)", KotlinIcons.MPP ) { override fun getPluginId() = "org.jetbrains.kotlin.multiplatform" override fun getPluginExpression() = "id 'org.jetbrains.kotlin.multiplatform'" @@ -298,38 +298,6 @@ open class GradleKotlinMPPFrameworkSupportProvider : GradleKotlinFrameworkSuppor override fun getDependencies(sdk: Sdk?): List = listOf() override fun getTestDependencies(): List = listOf() - override fun getDescription() = - "For sharing code between platforms (JVM, JS, Android, iOS, etc.)" - - override fun addSupport( - buildScriptData: BuildScriptDataBuilder, - module: Module, - sdk: Sdk?, - specifyPluginVersionIfNeeded: Boolean, - explicitPluginVersion: String? - ) { - super.addSupport(buildScriptData, module, sdk, specifyPluginVersionIfNeeded, explicitPluginVersion) - - buildScriptData.addOther( - """kotlin { - /* Targets declarations omitted - * Documentation: https://kotlinlang.org/docs/reference/building-mpp-with-gradle.html */ - - sourceSets { - commonMain { - dependencies { - implementation kotlin('stdlib-common') - } - } - commonTest { - dependencies { - implementation kotlin('test-common') - implementation kotlin('test-annotations-common') - } - } - } -}""" - ) - } + override fun getDescription() = "Kotlin multiplatform code" } diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinDslGradleKotlinFrameworkSupportProvider.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinDslGradleKotlinFrameworkSupportProvider.kt index b2538f25e6e..dfcd588c9bf 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinDslGradleKotlinFrameworkSupportProvider.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinDslGradleKotlinFrameworkSupportProvider.kt @@ -80,6 +80,7 @@ abstract class KotlinDslGradleKotlinFrameworkSupportProvider( buildScriptData .addPluginDefinitionInPluginsGroup(getPluginDefinition() + " version \"$kotlinVersion\"") + .addDependencyNotation(getRuntimeLibrary(rootModel, null)) } else { if (additionalRepository != null) { val repository = additionalRepository.toKotlinRepositorySnippet() @@ -94,6 +95,7 @@ abstract class KotlinDslGradleKotlinFrameworkSupportProvider( .addBuildscriptRepositoriesDefinition("mavenCentral()") // TODO: in gradle > 4.1 this could be single declaration e.g. 'val kotlin_version: String by extra { "1.1.11" }' .addBuildscriptPropertyDefinition("var $GSK_KOTLIN_VERSION_PROPERTY_NAME: String by extra\n $GSK_KOTLIN_VERSION_PROPERTY_NAME = \"$kotlinVersion\"") + .addDependencyNotation(getRuntimeLibrary(rootModel, "\$$GSK_KOTLIN_VERSION_PROPERTY_NAME")) .addBuildscriptDependencyNotation(getKotlinGradlePluginClassPathSnippet()) } @@ -110,6 +112,8 @@ abstract class KotlinDslGradleKotlinFrameworkSupportProvider( private fun RepositoryDescription.toKotlinRepositorySnippet() = "maven { setUrl(\"$url\") }" + protected abstract fun getRuntimeLibrary(rootModel: ModifiableRootModel, version: String?): String + protected abstract fun getOldSyntaxPluginDefinition(): String protected abstract fun getPluginDefinition(): String } @@ -120,7 +124,7 @@ class KotlinDslGradleKotlinJavaFrameworkSupportProvider : override fun getOldSyntaxPluginDefinition() = "plugin(\"${KotlinGradleModuleConfigurator.KOTLIN}\")" override fun getPluginDefinition() = "kotlin(\"jvm\")" - private fun getRuntimeLibrary(rootModel: ModifiableRootModel, version: String?) = + override fun getRuntimeLibrary(rootModel: ModifiableRootModel, version: String?) = "implementation(${getKotlinModuleDependencySnippet(getStdlibArtifactId(rootModel.sdk, bundledRuntimeVersion()), version)})" override fun addSupport( @@ -137,11 +141,6 @@ class KotlinDslGradleKotlinJavaFrameworkSupportProvider : .addImport("import org.jetbrains.kotlin.gradle.tasks.KotlinCompile") .addOther("tasks.withType {\n kotlinOptions.jvmTarget = \"1.8\"\n}\n") } - - if (buildScriptData.gradleVersion >= MIN_GRADLE_VERSION_FOR_NEW_PLUGIN_SYNTAX) - buildScriptData.addDependencyNotation(getRuntimeLibrary(rootModel, null)) - else - buildScriptData.addDependencyNotation(getRuntimeLibrary(rootModel, "\$$GSK_KOTLIN_VERSION_PROPERTY_NAME")) } } @@ -161,17 +160,12 @@ abstract class AbstractKotlinDslGradleKotlinJSFrameworkSupportProvider( super.addSupport(projectId, module, rootModel, modifiableModelsProvider, buildScriptData) buildScriptData.addOther("kotlin.target.$jsSubTargetName { }") - - if (buildScriptData.gradleVersion >= MIN_GRADLE_VERSION_FOR_NEW_PLUGIN_SYNTAX) - buildScriptData.addDependencyNotation(getRuntimeLibrary(rootModel, null)) - else - buildScriptData.addDependencyNotation(getRuntimeLibrary(rootModel, "\$$GSK_KOTLIN_VERSION_PROPERTY_NAME")) } override fun getOldSyntaxPluginDefinition(): String = "plugin(\"${KotlinJsGradleModuleConfigurator.KOTLIN_JS}\")" override fun getPluginDefinition(): String = "id(\"org.jetbrains.kotlin.js\")" - private fun getRuntimeLibrary(rootModel: ModifiableRootModel, version: String?) = + override fun getRuntimeLibrary(rootModel: ModifiableRootModel, version: String?) = "implementation(${getKotlinModuleDependencySnippet(MAVEN_JS_STDLIB_ID.removePrefix("kotlin-"), version)})" } @@ -186,41 +180,3 @@ class KotlinDslGradleKotlinJSNodeFrameworkSupportProvider : override val jsSubTargetName: String get() = "nodejs" } - -class KotlinDslGradleKotlinMPPFrameworkSupportProvider : - KotlinDslGradleKotlinFrameworkSupportProvider("KOTLIN_MPP", "Kotlin/Multiplatform", KotlinIcons.MPP) { - - override fun getOldSyntaxPluginDefinition() = "plugin(\"org.jetbrains.kotlin.multiplatform\")" - override fun getPluginDefinition() = "kotlin(\"multiplatform\")" - - override fun addSupport( - projectId: ProjectId, - module: Module, - rootModel: ModifiableRootModel, - modifiableModelsProvider: ModifiableModelsProvider, - buildScriptData: BuildScriptDataBuilder - ) { - super.addSupport(projectId, module, rootModel, modifiableModelsProvider, buildScriptData) - - buildScriptData.addOther( - """kotlin { - /* Targets declarations omitted - * Documentation: https://kotlinlang.org/docs/reference/building-mpp-with-gradle.html */ - - sourceSets { - val commonMain by getting { - dependencies { - implementation(kotlin("stdlib-common")) - } - } - val commonTest by getting { - dependencies { - implementation(kotlin("test-common")) - implementation(kotlin("test-annotations-common")) - } - } - } -}""" - ) - } -} \ No newline at end of file diff --git a/idea/resources/META-INF/gradle-java.xml b/idea/resources/META-INF/gradle-java.xml index d89a5f3d84f..18558b58a1f 100644 --- a/idea/resources/META-INF/gradle-java.xml +++ b/idea/resources/META-INF/gradle-java.xml @@ -1,10 +1,8 @@ - - diff --git a/idea/resources/META-INF/gradle-java.xml.183 b/idea/resources/META-INF/gradle-java.xml.183 index 0ab7b629d11..ba0a651f0ac 100644 --- a/idea/resources/META-INF/gradle-java.xml.183 +++ b/idea/resources/META-INF/gradle-java.xml.183 @@ -1,10 +1,8 @@ - - diff --git a/idea/resources/META-INF/gradle-java.xml.as33 b/idea/resources/META-INF/gradle-java.xml.as33 index d89a5f3d84f..18558b58a1f 100644 --- a/idea/resources/META-INF/gradle-java.xml.as33 +++ b/idea/resources/META-INF/gradle-java.xml.as33 @@ -1,10 +1,8 @@ - - diff --git a/idea/resources/META-INF/gradle-java.xml.as34 b/idea/resources/META-INF/gradle-java.xml.as34 index d89a5f3d84f..18558b58a1f 100644 --- a/idea/resources/META-INF/gradle-java.xml.as34 +++ b/idea/resources/META-INF/gradle-java.xml.as34 @@ -1,10 +1,8 @@ - -