Fix wrong commits picked for master: restore changes from KOTLIN-CR-2817

This commit is contained in:
Sergey Igushkin
2019-02-27 20:44:19 +03:00
parent ec3e5c6959
commit 70db646576
8 changed files with 18 additions and 16 deletions
@@ -360,7 +360,7 @@ class Kotlin2JsGradlePluginIT : BaseGradleIT() {
assertSuccessful() assertSuccessful()
assertTasksExecuted( assertTasksExecuted(
":compileKotlin", ":compileTestKotlin", ":compileBenchmarkKotlin", ":compileKotlinJs", ":compileTestKotlinJs", ":compileBenchmarkKotlinJs",
":runDceKotlin", ":runDceBenchmarkKotlin" ":runDceKotlin", ":runDceBenchmarkKotlin"
) )
@@ -13,13 +13,13 @@ repositories {
} }
kotlin.sourceSets { kotlin.sourceSets {
main { getByName("main") {
dependencies { dependencies {
api("org.jetbrains.kotlinx:kotlinx-html-js:0.6.10") api("org.jetbrains.kotlinx:kotlinx-html-js:0.6.10")
implementation(kotlin("stdlib-js")) implementation(kotlin("stdlib-js"))
} }
} }
test { getByName("test") {
dependencies { dependencies {
implementation(kotlin("test-js")) implementation(kotlin("test-js"))
} }
@@ -37,7 +37,7 @@ kotlin.target.compilations.create("benchmark") {
publishing { publishing {
publications { publications {
create("default", MavenPublication::class.java) { create("default", MavenPublication::class.java) {
from(kotlin.target.components.single()) from(components.getByName("kotlin"))
artifact(tasks.getByName("kotlinSourcesJar")) artifact(tasks.getByName("kotlinSourcesJar"))
} }
} }
@@ -50,7 +50,7 @@ val runBenchmark by tasks.registering(JavaExec::class) {
publishing { publishing {
publications { publications {
create("default", MavenPublication::class) { create("default", MavenPublication::class) {
from(kotlin.target.components.single()) from(components.getByName("kotlin"))
artifact(tasks.getByName("kotlinSourcesJar")) artifact(tasks.getByName("kotlinSourcesJar"))
} }
} }
@@ -30,10 +30,7 @@ import org.gradle.api.tasks.compile.AbstractCompile
import org.gradle.api.tasks.compile.JavaCompile import org.gradle.api.tasks.compile.JavaCompile
import org.gradle.jvm.tasks.Jar import org.gradle.jvm.tasks.Jar
import org.gradle.tooling.provider.model.ToolingModelBuilderRegistry import org.gradle.tooling.provider.model.ToolingModelBuilderRegistry
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions import org.jetbrains.kotlin.gradle.dsl.*
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.internal.Kapt3KotlinGradleSubplugin import org.jetbrains.kotlin.gradle.internal.Kapt3KotlinGradleSubplugin
import org.jetbrains.kotlin.gradle.internal.KaptVariantData import org.jetbrains.kotlin.gradle.internal.KaptVariantData
import org.jetbrains.kotlin.gradle.internal.checkAndroidAnnotationProcessorDependencyUsage 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.plugin.mpp.*
import org.jetbrains.kotlin.gradle.scripting.internal.ScriptingGradleSubplugin import org.jetbrains.kotlin.gradle.scripting.internal.ScriptingGradleSubplugin
import org.jetbrains.kotlin.gradle.tasks.* import org.jetbrains.kotlin.gradle.tasks.*
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import org.jetbrains.kotlin.gradle.utils.* import org.jetbrains.kotlin.gradle.utils.*
import java.io.File import java.io.File
import java.net.URL import java.net.URL
@@ -84,7 +84,7 @@ class KotlinMultiplatformPlugin(
) )
configurePublishingWithMavenPublish(project) configurePublishingWithMavenPublish(project)
targetsContainer.all { applyUserDefinedAttributes(it) } targetsContainer.withType(AbstractKotlinTarget::class.java).all { applyUserDefinedAttributes(it) }
// propagate compiler plugin options to the source set language settings // propagate compiler plugin options to the source set language settings
setupCompilerPluginOptions(project) 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) * 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 * 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 val project = target.project
project.whenEvaluated { 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 // To copy the attributes to the output configurations, find those output configurations and their producing compilations
// based on the target's components: // based on the target's components:
val outputConfigurationsWithCompilations = val outputConfigurationsWithCompilations =
target.components.filterIsInstance<KotlinVariant>().flatMap { kotlinVariant -> target.kotlinComponents.filterIsInstance<KotlinVariant>().flatMap { kotlinVariant ->
kotlinVariant.usages.filterIsInstance<KotlinUsageContext>().mapNotNull { usageContext -> kotlinVariant.usages.filterIsInstance<KotlinUsageContext>().mapNotNull { usageContext ->
project.configurations.findByName(usageContext.dependencyConfigurationName)?.let { configuration -> project.configurations.findByName(usageContext.dependencyConfigurationName)?.let { configuration ->
configuration to usageContext.compilation configuration to usageContext.compilation
@@ -32,6 +32,8 @@ import org.jetbrains.kotlin.gradle.utils.dashSeparatedName
import org.jetbrains.kotlin.gradle.utils.isGradleVersionAtLeast import org.jetbrains.kotlin.gradle.utils.isGradleVersionAtLeast
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
internal const val PRIMARY_SINGLE_COMPONENT_NAME = "kotlin"
abstract class AbstractKotlinTarget( abstract class AbstractKotlinTarget(
final override val project: Project final override val project: Project
) : KotlinTarget { ) : KotlinTarget {
@@ -60,7 +62,10 @@ abstract class AbstractKotlinTarget(
val mainCompilation = compilations.getByName(KotlinCompilation.MAIN_COMPILATION_NAME) val mainCompilation = compilations.getByName(KotlinCompilation.MAIN_COMPILATION_NAME)
val usageContexts = createUsageContexts(mainCompilation) 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)) { val result = if (isGradleVersionAtLeast(4, 7)) {
createKotlinVariant(componentName, mainCompilation, usageContexts) createKotlinVariant(componentName, mainCompilation, usageContexts)
@@ -72,7 +77,7 @@ abstract class AbstractKotlinTarget(
sourcesJarArtifact(mainCompilation, componentName, dashSeparatedName(targetName.toLowerCase())) sourcesJarArtifact(mainCompilation, componentName, dashSeparatedName(targetName.toLowerCase()))
) )
setOf(result).also { project.components.addAll(it) } setOf(result)
} }
override val components: Set<SoftwareComponent> by lazy { override val components: Set<SoftwareComponent> by lazy {
@@ -90,7 +90,6 @@ open class KotlinAndroidTarget(
checkPublishLibraryVariantsExist() checkPublishLibraryVariantsExist()
KotlinAndroidPlugin.androidTargetHandler(project.getKotlinPluginVersion()!!, this).doCreateComponents() KotlinAndroidPlugin.androidTargetHandler(project.getKotlinPluginVersion()!!, this).doCreateComponents()
.also { project.components.addAll(it) }
} }
// Capture the type parameter T for `AbstractAndroidProjectHandler` // Capture the type parameter T for `AbstractAndroidProjectHandler`
@@ -29,7 +29,7 @@ open class KotlinJsPlugin(
val kotlinExtension = project.kotlinExtension as KotlinJsProjectExtension val kotlinExtension = project.kotlinExtension as KotlinJsProjectExtension
configureDefaultVersionsResolutionStrategy(project, kotlinPluginVersion) configureDefaultVersionsResolutionStrategy(project, kotlinPluginVersion)
val target = KotlinJsSingleTargetPreset(project, kotlinPluginVersion).createTarget("kotlin") val target = KotlinJsSingleTargetPreset(project, kotlinPluginVersion).createTarget("Js")
kotlinExtension.target = target kotlinExtension.target = target