From 2d068a42f496411281f6b55e598f06f6dc25a0c7 Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Mon, 8 Jun 2020 13:29:34 +0300 Subject: [PATCH] [Gradle, JS] Use common isMain for KotlinCompilation --- .../GradleKotlinCompilerRunner.kt | 27 ++++++------------- .../kotlin/gradle/plugin/KotlinPlugin.kt | 2 +- .../gradle/plugin/KotlinTargetConfigurator.kt | 4 +-- .../plugin/mpp/KotlinMultiplatformPlugin.kt | 7 ++--- .../KotlinCompilationsModuleGroups.kt | 5 ++-- .../gradle/plugin/mpp/kotlinCompilations.kt | 22 ++++++++------- .../targets/js/ir/KotlinJsBinaryContainer.kt | 3 ++- .../targets/js/ir/KotlinJsIrSubTarget.kt | 3 ++- .../js/ir/KotlinJsIrTargetConfigurator.kt | 2 +- .../resolver/KotlinCompilationNpmResolver.kt | 2 +- .../js/npm/resolver/KotlinRootNpmResolver.kt | 4 +-- .../js/subtargets/KotlinJsSubTarget.kt | 3 ++- .../native/KotlinNativeTargetConfigurator.kt | 5 ++-- .../native/KotlinNativeTargetPreset.kt | 4 +-- 14 files changed, 44 insertions(+), 49 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerRunner.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerRunner.kt index 796ee9cab48..2b6210a76ec 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerRunner.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerRunner.kt @@ -1,17 +1,6 @@ /* - * Copyright 2010-2016 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.compilerRunner @@ -28,21 +17,21 @@ import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments import org.jetbrains.kotlin.cli.common.arguments.K2MetadataCompilerArguments import org.jetbrains.kotlin.cli.common.messages.MessageCollector import org.jetbrains.kotlin.daemon.client.CompileServiceSession -import org.jetbrains.kotlin.daemon.common.* +import org.jetbrains.kotlin.daemon.common.CompilerId import org.jetbrains.kotlin.gradle.dsl.kotlinExtensionOrNull import org.jetbrains.kotlin.gradle.dsl.multiplatformExtensionOrNull import org.jetbrains.kotlin.gradle.logging.kotlinDebug -import org.jetbrains.kotlin.gradle.plugin.internal.state.TaskLoggers -import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType -import org.jetbrains.kotlin.gradle.tasks.KotlinCompileTaskData +import org.jetbrains.kotlin.gradle.plugin.internal.state.TaskLoggers import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinWithJavaTarget +import org.jetbrains.kotlin.gradle.plugin.mpp.isMain import org.jetbrains.kotlin.gradle.plugin.mpp.ownModuleName +import org.jetbrains.kotlin.gradle.tasks.KotlinCompileTaskData import org.jetbrains.kotlin.gradle.utils.archivePathCompatible import org.jetbrains.kotlin.gradle.utils.newTmpFile import org.jetbrains.kotlin.gradle.utils.relativeToRoot -import org.jetbrains.kotlin.incremental.IncrementalModuleInfo import org.jetbrains.kotlin.incremental.IncrementalModuleEntry +import org.jetbrains.kotlin.incremental.IncrementalModuleInfo import java.io.File import java.lang.ref.WeakReference @@ -210,7 +199,7 @@ internal open class GradleCompilerRunner(protected val task: Task) { } } - if (compilation.name == KotlinCompilation.MAIN_COMPILATION_NAME) { + if (compilation.isMain()) { if (isMultiplatformProject) { (project.tasks.findByName(target.artifactsTaskName) as? AbstractArchiveTask)?.let { jarTask -> jarToModule[jarTask.archivePathCompatible.canonicalFile] = module 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 48acbe574f4..106a5dbe159 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 @@ -407,7 +407,7 @@ internal class KotlinCommonSourceSetProcessor( override fun doTargetSpecificProcessing() { project.tasks.findByName(kotlinCompilation.compileAllTaskName)!!.dependsOn(kotlinTask) // can be missing (e.g. in case of tests) - if (kotlinCompilation.compilationName == KotlinCompilation.MAIN_COMPILATION_NAME) { + if (kotlinCompilation.isMain()) { project.tasks.findByName(kotlinCompilation.target.artifactsTaskName)?.dependsOn(kotlinTask) } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinTargetConfigurator.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinTargetConfigurator.kt index 1784ed0332b..cf40f267fb3 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinTargetConfigurator.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinTargetConfigurator.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ @@ -352,7 +352,7 @@ abstract class KotlinOnlyTargetConfigurator buildCompilationProcessor(compilation).run() - if (compilation.name == KotlinCompilation.MAIN_COMPILATION_NAME) { + if (compilation.isMain()) { sourcesJarTask(compilation, target.targetName, target.targetName.toLowerCase()) } } 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 7ff4055acd3..064fea23d5b 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 @@ -17,7 +17,6 @@ import org.gradle.api.publish.PublicationContainer import org.gradle.api.publish.PublishingExtension import org.gradle.api.publish.maven.MavenPublication import org.gradle.api.publish.maven.internal.publication.MavenPublicationInternal -import org.gradle.api.publish.maven.tasks.AbstractPublishToMaven import org.gradle.api.tasks.compile.AbstractCompile import org.gradle.jvm.tasks.Jar import org.gradle.util.ConfigureUtil @@ -36,7 +35,9 @@ import org.jetbrains.kotlin.gradle.plugin.statistics.KotlinBuildStatsService import org.jetbrains.kotlin.gradle.scripting.internal.ScriptingGradleSubplugin import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTargetPreset import org.jetbrains.kotlin.gradle.targets.metadata.isKotlinGranularMetadataEnabled -import org.jetbrains.kotlin.gradle.utils.* +import org.jetbrains.kotlin.gradle.utils.SingleWarningPerBuild +import org.jetbrains.kotlin.gradle.utils.checkGradleCompatibility +import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName import org.jetbrains.kotlin.konan.target.HostManager import org.jetbrains.kotlin.konan.target.KonanTarget.* import org.jetbrains.kotlin.konan.target.presetName @@ -371,7 +372,7 @@ internal fun Project.setupGeneralKotlinExtensionParameters() { CompilationSourceSetUtil.compilationsBySourceSets(project).filterValues { compilations -> compilations.any { // kotlin main compilation - it.name == KotlinCompilation.MAIN_COMPILATION_NAME + it.isMain() // android compilation which is NOT in tested variant || (it as? KotlinJvmAndroidCompilation)?.let { getTestedVariantData(it.androidVariant) == null } == true } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/internal/KotlinCompilationsModuleGroups.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/internal/KotlinCompilationsModuleGroups.kt index 4d835b568fd..9630d131a24 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/internal/KotlinCompilationsModuleGroups.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/internal/KotlinCompilationsModuleGroups.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ @@ -8,6 +8,7 @@ package org.jetbrains.kotlin.gradle.plugin.mpp.internal import org.gradle.api.Project import org.gradle.api.plugins.ExtraPropertiesExtension import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation +import org.jetbrains.kotlin.gradle.plugin.mpp.isMain /** This is a disjoint-set union-like approach to having a module name that is equal across associated compilations, as the compiler * now requires that to properly compile internal calls to friend classes. Associating a compilation with another one leads to their @@ -40,7 +41,7 @@ internal class KotlinCompilationsModuleGroups { listOf(aLeader, bLeader).run { /** heuristically choose the new leader: choose `main` when possible, don't choose `*test*` when there's an alternative, * if that didn't work, choose the first name lexicographically */ - val newLeader = singleOrNull { it.name == KotlinCompilation.MAIN_COMPILATION_NAME } + val newLeader = singleOrNull { it.isMain() } ?: singleOrNull { it.name.contains("main", true) } ?: singleOrNull { !it.name.contains("test", true) } ?: minBy { it.name }!! diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/kotlinCompilations.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/kotlinCompilations.kt index dc01fb29276..ad6402d130e 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/kotlinCompilations.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/kotlinCompilations.kt @@ -1,7 +1,7 @@ /* -* Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. -* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. -*/ + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ package org.jetbrains.kotlin.gradle.plugin.mpp @@ -18,7 +18,6 @@ import org.gradle.api.tasks.TaskProvider import org.gradle.api.tasks.TaskState import org.gradle.api.tasks.bundling.AbstractArchiveTask import org.gradle.util.ConfigureUtil -import org.jetbrains.kotlin.fir.resolve.getOrPut import org.jetbrains.kotlin.gradle.dsl.* import org.jetbrains.kotlin.gradle.plugin.* import org.jetbrains.kotlin.gradle.plugin.mpp.internal.KotlinCompilationsModuleGroups @@ -26,8 +25,6 @@ import org.jetbrains.kotlin.gradle.plugin.sources.defaultSourceSetLanguageSettin import org.jetbrains.kotlin.gradle.plugin.sources.getSourceSetHierarchy import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile import org.jetbrains.kotlin.gradle.tasks.locateTask -import org.jetbrains.kotlin.gradle.utils.addExtendsFromRelation -import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName import org.jetbrains.kotlin.gradle.utils.* import java.util.* import java.util.concurrent.Callable @@ -39,6 +36,9 @@ internal fun KotlinCompilation<*>.composeName(prefix: String? = null, suffix: St return lowerCamelCaseName(prefix, targetNamePart, compilationNamePart, suffix) } +internal fun KotlinCompilation<*>.isMain(): Boolean = + name == KotlinCompilation.MAIN_COMPILATION_NAME + abstract class AbstractKotlinCompilation( target: KotlinTarget, override val compilationName: String @@ -74,7 +74,7 @@ abstract class AbstractKotlinCompilation( get() = lowerCamelCaseName( target.disambiguationClassifier.takeIf { target !is KotlinMetadataTarget }, when { - compilationName == KotlinCompilation.MAIN_COMPILATION_NAME && target is KotlinMetadataTarget -> + isMain() && target is KotlinMetadataTarget -> KotlinSourceSet.COMMON_MAIN_SOURCE_SET_NAME // corner case: main compilation of the metadata target compiles commonMain else -> compilationName } @@ -207,12 +207,14 @@ abstract class AbstractKotlinCompilation( */ internal open val friendArtifacts: FileCollection get() = with(target.project) { - if (associateWithTransitiveClosure.any { it.name == KotlinCompilation.MAIN_COMPILATION_NAME }) { + if (associateWithTransitiveClosure.any { it.isMain() }) { // In case the main artifact is transitively added to the test classpath via a test dependency on another module // that depends on this module's production part, include the main artifact in the friend artifacts, lazily: files( provider { - listOfNotNull(tasks.withType(AbstractArchiveTask::class.java).findByName(target.artifactsTaskName)?.archivePathCompatible) + listOfNotNull( + tasks.withType(AbstractArchiveTask::class.java).findByName(target.artifactsTaskName)?.archivePathCompatible + ) } ) } else files() @@ -260,7 +262,7 @@ internal val KotlinCompilation<*>.ownModuleName: String val project = target.project val baseName = project.convention.findPlugin(BasePluginConvention::class.java)?.archivesBaseName ?: project.name - val suffix = if (compilationName == KotlinCompilation.MAIN_COMPILATION_NAME) "" else "_$compilationName" + val suffix = if (isMain()) "" else "_$compilationName" return filterModuleName("$baseName$suffix") } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsBinaryContainer.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsBinaryContainer.kt index 74a517656c3..6cd9dc8b533 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsBinaryContainer.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsBinaryContainer.kt @@ -11,6 +11,7 @@ import org.gradle.api.plugins.ExtensionAware import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinTargetWithBinaries +import org.jetbrains.kotlin.gradle.plugin.mpp.isMain import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryMode import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryMode.DEVELOPMENT @@ -140,7 +141,7 @@ constructor( jsBinaryType: KotlinJsBinaryType? ) = lowerCamelCaseName( - compilation.name.let { if (it == KotlinCompilation.MAIN_COMPILATION_NAME) null else it }, + if (compilation.isMain()) null else compilation.name, mode.name.toLowerCase(), jsBinaryType?.name?.toLowerCase() ) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrSubTarget.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrSubTarget.kt index 2445d07d5f8..4819b646467 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrSubTarget.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrSubTarget.kt @@ -13,6 +13,7 @@ import org.gradle.language.base.plugins.LifecycleBasePlugin import org.jetbrains.kotlin.gradle.plugin.AbstractKotlinTargetConfigurator import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation import org.jetbrains.kotlin.gradle.plugin.KotlinTargetWithTests +import org.jetbrains.kotlin.gradle.plugin.mpp.isMain import org.jetbrains.kotlin.gradle.plugin.whenEvaluated import org.jetbrains.kotlin.gradle.targets.js.KotlinJsPlatformTestRun import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryMode @@ -148,7 +149,7 @@ abstract class KotlinJsIrSubTarget( private fun configureMain() { target.compilations.all { compilation -> - if (compilation.name == KotlinCompilation.MAIN_COMPILATION_NAME) { + if (compilation.isMain()) { configureMain(compilation) } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTargetConfigurator.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTargetConfigurator.kt index 647af6eed06..748faa9363d 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTargetConfigurator.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTargetConfigurator.kt @@ -72,7 +72,7 @@ open class KotlinJsIrTargetConfigurator(kotlinPluginVersion: String) : ) // Configure FQ module name to avoid cyclic dependencies in klib manifests (see KT-36721). - val baseName = if (compilation.name == KotlinCompilation.MAIN_COMPILATION_NAME) { + val baseName = if (compilation.isMain()) { target.project.name } else { "${target.project.name}_${compilation.name}" diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/resolver/KotlinCompilationNpmResolver.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/resolver/KotlinCompilationNpmResolver.kt index cd112eedb2b..f1dc75fc2a6 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/resolver/KotlinCompilationNpmResolver.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/resolver/KotlinCompilationNpmResolver.kt @@ -59,7 +59,7 @@ internal class KotlinCompilationNpmResolver( it.dependsOn(nodeJs.npmInstallTask) it.dependsOn(packageJsonTaskHolder) }.also { packageJsonTask -> - if (compilation.name == KotlinCompilation.MAIN_COMPILATION_NAME) { + if (compilation.isMain()) { project.tasks .withType(Zip::class.java) .named(npmProject.target.artifactsTaskName) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/resolver/KotlinRootNpmResolver.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/resolver/KotlinRootNpmResolver.kt index 449fb2665ee..61422b64451 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/resolver/KotlinRootNpmResolver.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/resolver/KotlinRootNpmResolver.kt @@ -7,8 +7,8 @@ package org.jetbrains.kotlin.gradle.targets.js.npm.resolver import org.gradle.api.Project import org.gradle.api.Task -import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation +import org.jetbrains.kotlin.gradle.plugin.mpp.isMain import org.jetbrains.kotlin.gradle.targets.js.dukat.DukatRootResolverPlugin import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrCompilation import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension @@ -68,7 +68,7 @@ internal class KotlinRootNpmResolver internal constructor( fun findDependentResolver(src: Project, target: Project): List? { // todo: proper finding using KotlinTargetComponent.findUsageContext val targetResolver = this[target] - val mainCompilations = targetResolver.compilationResolvers.filter { it.compilation.name == KotlinCompilation.MAIN_COMPILATION_NAME } + val mainCompilations = targetResolver.compilationResolvers.filter { it.compilation.isMain() } return if (mainCompilations.isNotEmpty()) { //TODO[Ilya Goncharov] Hack for Mixed mode of legacy and IR tooling diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/KotlinJsSubTarget.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/KotlinJsSubTarget.kt index 10d081cfc46..c618095654b 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/KotlinJsSubTarget.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/KotlinJsSubTarget.kt @@ -14,6 +14,7 @@ import org.jetbrains.kotlin.gradle.plugin.AbstractKotlinTargetConfigurator import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation import org.jetbrains.kotlin.gradle.plugin.KotlinTargetWithTests import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation +import org.jetbrains.kotlin.gradle.plugin.mpp.isMain import org.jetbrains.kotlin.gradle.plugin.whenEvaluated import org.jetbrains.kotlin.gradle.targets.js.KotlinJsPlatformTestRun import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget @@ -138,7 +139,7 @@ abstract class KotlinJsSubTarget( private fun configureMain() { target.compilations.all { compilation -> - if (compilation.name == KotlinCompilation.MAIN_COMPILATION_NAME) { + if (compilation.isMain()) { configureMain(compilation) } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetConfigurator.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetConfigurator.kt index ddf3ed7cb1f..93bcd6623db 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetConfigurator.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetConfigurator.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ @@ -17,7 +17,6 @@ import org.gradle.api.internal.plugins.DefaultArtifactPublicationSet import org.gradle.api.plugins.BasePlugin import org.gradle.api.tasks.Copy import org.gradle.api.tasks.Exec -import org.gradle.api.tasks.TaskProvider import org.gradle.language.base.plugins.LifecycleBasePlugin import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation.Companion.MAIN_COMPILATION_NAME import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation.Companion.TEST_COMPILATION_NAME @@ -170,7 +169,7 @@ open class KotlinNativeTargetConfigurator( project.tasks.getByName(compilation.compileAllTaskName).dependsOn(compileTask) - if (compilation.compilationName == MAIN_COMPILATION_NAME) { + if (compilation.isMain()) { compilation as? KotlinNativeCompilation ?: error("Main shared-Native compilation is not yet supported!") project.tasks.getByName(compilation.target.artifactsTaskName).apply { diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetPreset.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetPreset.kt index a019162945f..04515eba4c5 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetPreset.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetPreset.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ @@ -150,7 +150,7 @@ internal val KonanTarget.enabledOnCurrentHost get() = HostManager().isEnabled(this) internal val AbstractKotlinNativeCompilation.isMainCompilation: Boolean - get() = name == KotlinCompilation.MAIN_COMPILATION_NAME + get() = isMain() // KonanVersion doesn't provide an API to compare versions, // so we have to transform it to KotlinVersion first.