From 70db646576eddb3e9fb117b613ef844757dad609 Mon Sep 17 00:00:00 2001 From: Sergey Igushkin Date: Wed, 27 Feb 2019 20:44:19 +0300 Subject: [PATCH] Fix wrong commits picked for master: restore changes from KOTLIN-CR-2817 --- .../jetbrains/kotlin/gradle/Kotlin2JsGradlePluginIT.kt | 2 +- .../kotlin-js-plugin-project/build.gradle.kts | 6 +++--- .../testProject/new-model-in-old-plugin/build.gradle.kts | 2 +- .../org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt | 6 ++---- .../gradle/plugin/mpp/KotlinMultiplatformPlugin.kt | 6 +++--- .../jetbrains/kotlin/gradle/plugin/mpp/kotlinTargets.kt | 9 +++++++-- .../kotlin/gradle/targets/android/KotlinAndroidTarget.kt | 1 - .../jetbrains/kotlin/gradle/targets/js/KotlinJsPlugin.kt | 2 +- 8 files changed, 18 insertions(+), 16 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kotlin2JsGradlePluginIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kotlin2JsGradlePluginIT.kt index 147f2f52c7f..2d802b52678 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kotlin2JsGradlePluginIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kotlin2JsGradlePluginIT.kt @@ -360,7 +360,7 @@ class Kotlin2JsGradlePluginIT : BaseGradleIT() { assertSuccessful() assertTasksExecuted( - ":compileKotlin", ":compileTestKotlin", ":compileBenchmarkKotlin", + ":compileKotlinJs", ":compileTestKotlinJs", ":compileBenchmarkKotlinJs", ":runDceKotlin", ":runDceBenchmarkKotlin" ) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-js-plugin-project/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-js-plugin-project/build.gradle.kts index 34cca234c8b..789cc7752a6 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-js-plugin-project/build.gradle.kts +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-js-plugin-project/build.gradle.kts @@ -13,13 +13,13 @@ repositories { } kotlin.sourceSets { - main { + getByName("main") { dependencies { api("org.jetbrains.kotlinx:kotlinx-html-js:0.6.10") implementation(kotlin("stdlib-js")) } } - test { + getByName("test") { dependencies { implementation(kotlin("test-js")) } @@ -37,7 +37,7 @@ kotlin.target.compilations.create("benchmark") { publishing { publications { create("default", MavenPublication::class.java) { - from(kotlin.target.components.single()) + from(components.getByName("kotlin")) artifact(tasks.getByName("kotlinSourcesJar")) } } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-model-in-old-plugin/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-model-in-old-plugin/build.gradle.kts index a37f237ef82..3799f476895 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-model-in-old-plugin/build.gradle.kts +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-model-in-old-plugin/build.gradle.kts @@ -50,7 +50,7 @@ val runBenchmark by tasks.registering(JavaExec::class) { publishing { publications { create("default", MavenPublication::class) { - from(kotlin.target.components.single()) + from(components.getByName("kotlin")) artifact(tasks.getByName("kotlinSourcesJar")) } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt index f3e1da42dd1..2bedb0e7553 100755 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt @@ -30,10 +30,7 @@ import org.gradle.api.tasks.compile.AbstractCompile import org.gradle.api.tasks.compile.JavaCompile import org.gradle.jvm.tasks.Jar import org.gradle.tooling.provider.model.ToolingModelBuilderRegistry -import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions -import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptionsImpl -import org.jetbrains.kotlin.gradle.dsl.KotlinSingleJavaTargetExtension -import org.jetbrains.kotlin.gradle.dsl.kotlinExtension +import org.jetbrains.kotlin.gradle.dsl.* import org.jetbrains.kotlin.gradle.internal.Kapt3KotlinGradleSubplugin import org.jetbrains.kotlin.gradle.internal.KaptVariantData import org.jetbrains.kotlin.gradle.internal.checkAndroidAnnotationProcessorDependencyUsage @@ -43,6 +40,7 @@ import org.jetbrains.kotlin.gradle.model.builder.KotlinModelBuilder import org.jetbrains.kotlin.gradle.plugin.mpp.* import org.jetbrains.kotlin.gradle.scripting.internal.ScriptingGradleSubplugin import org.jetbrains.kotlin.gradle.tasks.* +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import org.jetbrains.kotlin.gradle.utils.* import java.io.File import java.net.URL diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt index eb56d5ccef4..3980012fed7 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt @@ -84,7 +84,7 @@ class KotlinMultiplatformPlugin( ) configurePublishingWithMavenPublish(project) - targetsContainer.all { applyUserDefinedAttributes(it) } + targetsContainer.withType(AbstractKotlinTarget::class.java).all { applyUserDefinedAttributes(it) } // propagate compiler plugin options to the source set language settings setupCompilerPluginOptions(project) @@ -242,7 +242,7 @@ class KotlinMultiplatformPlugin( * 1. Output configurations of each target need the corresponding compilation's attributes (and, indirectly, the target's attributes) * 2. Resolvable configurations of each compilation need the compilation's attributes */ -internal fun applyUserDefinedAttributes(target: KotlinTarget) { +internal fun applyUserDefinedAttributes(target: AbstractKotlinTarget) { val project = target.project project.whenEvaluated { @@ -257,7 +257,7 @@ internal fun applyUserDefinedAttributes(target: KotlinTarget) { // To copy the attributes to the output configurations, find those output configurations and their producing compilations // based on the target's components: val outputConfigurationsWithCompilations = - target.components.filterIsInstance().flatMap { kotlinVariant -> + target.kotlinComponents.filterIsInstance().flatMap { kotlinVariant -> kotlinVariant.usages.filterIsInstance().mapNotNull { usageContext -> project.configurations.findByName(usageContext.dependencyConfigurationName)?.let { configuration -> configuration to usageContext.compilation diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/kotlinTargets.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/kotlinTargets.kt index 7c123baab41..25227a22061 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/kotlinTargets.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/kotlinTargets.kt @@ -32,6 +32,8 @@ import org.jetbrains.kotlin.gradle.utils.dashSeparatedName import org.jetbrains.kotlin.gradle.utils.isGradleVersionAtLeast import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName +internal const val PRIMARY_SINGLE_COMPONENT_NAME = "kotlin" + abstract class AbstractKotlinTarget( final override val project: Project ) : KotlinTarget { @@ -60,7 +62,10 @@ abstract class AbstractKotlinTarget( val mainCompilation = compilations.getByName(KotlinCompilation.MAIN_COMPILATION_NAME) val usageContexts = createUsageContexts(mainCompilation) - val componentName = mainCompilation.target.name + val componentName = + if (project.kotlinExtension is KotlinMultiplatformExtension) + targetName + else PRIMARY_SINGLE_COMPONENT_NAME val result = if (isGradleVersionAtLeast(4, 7)) { createKotlinVariant(componentName, mainCompilation, usageContexts) @@ -72,7 +77,7 @@ abstract class AbstractKotlinTarget( sourcesJarArtifact(mainCompilation, componentName, dashSeparatedName(targetName.toLowerCase())) ) - setOf(result).also { project.components.addAll(it) } + setOf(result) } override val components: Set by lazy { diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/android/KotlinAndroidTarget.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/android/KotlinAndroidTarget.kt index 830de45e83e..3646c728c52 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/android/KotlinAndroidTarget.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/android/KotlinAndroidTarget.kt @@ -90,7 +90,6 @@ open class KotlinAndroidTarget( checkPublishLibraryVariantsExist() KotlinAndroidPlugin.androidTargetHandler(project.getKotlinPluginVersion()!!, this).doCreateComponents() - .also { project.components.addAll(it) } } // Capture the type parameter T for `AbstractAndroidProjectHandler` diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsPlugin.kt index 8e5820683fa..05112f0a5cc 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsPlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsPlugin.kt @@ -29,7 +29,7 @@ open class KotlinJsPlugin( val kotlinExtension = project.kotlinExtension as KotlinJsProjectExtension configureDefaultVersionsResolutionStrategy(project, kotlinPluginVersion) - val target = KotlinJsSingleTargetPreset(project, kotlinPluginVersion).createTarget("kotlin") + val target = KotlinJsSingleTargetPreset(project, kotlinPluginVersion).createTarget("Js") kotlinExtension.target = target