[Gradle, JS] Use common isMain for KotlinCompilation
This commit is contained in:
+8
-19
@@ -1,17 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2016 JetBrains s.r.o.
|
* 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.
|
||||||
* 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.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.compilerRunner
|
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.arguments.K2MetadataCompilerArguments
|
||||||
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
|
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
|
||||||
import org.jetbrains.kotlin.daemon.client.CompileServiceSession
|
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.kotlinExtensionOrNull
|
||||||
import org.jetbrains.kotlin.gradle.dsl.multiplatformExtensionOrNull
|
import org.jetbrains.kotlin.gradle.dsl.multiplatformExtensionOrNull
|
||||||
import org.jetbrains.kotlin.gradle.logging.kotlinDebug
|
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.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.KotlinWithJavaTarget
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.mpp.isMain
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.ownModuleName
|
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.archivePathCompatible
|
||||||
import org.jetbrains.kotlin.gradle.utils.newTmpFile
|
import org.jetbrains.kotlin.gradle.utils.newTmpFile
|
||||||
import org.jetbrains.kotlin.gradle.utils.relativeToRoot
|
import org.jetbrains.kotlin.gradle.utils.relativeToRoot
|
||||||
import org.jetbrains.kotlin.incremental.IncrementalModuleInfo
|
|
||||||
import org.jetbrains.kotlin.incremental.IncrementalModuleEntry
|
import org.jetbrains.kotlin.incremental.IncrementalModuleEntry
|
||||||
|
import org.jetbrains.kotlin.incremental.IncrementalModuleInfo
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.lang.ref.WeakReference
|
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) {
|
if (isMultiplatformProject) {
|
||||||
(project.tasks.findByName(target.artifactsTaskName) as? AbstractArchiveTask)?.let { jarTask ->
|
(project.tasks.findByName(target.artifactsTaskName) as? AbstractArchiveTask)?.let { jarTask ->
|
||||||
jarToModule[jarTask.archivePathCompatible.canonicalFile] = module
|
jarToModule[jarTask.archivePathCompatible.canonicalFile] = module
|
||||||
|
|||||||
+1
-1
@@ -407,7 +407,7 @@ internal class KotlinCommonSourceSetProcessor(
|
|||||||
override fun doTargetSpecificProcessing() {
|
override fun doTargetSpecificProcessing() {
|
||||||
project.tasks.findByName(kotlinCompilation.compileAllTaskName)!!.dependsOn(kotlinTask)
|
project.tasks.findByName(kotlinCompilation.compileAllTaskName)!!.dependsOn(kotlinTask)
|
||||||
// can be missing (e.g. in case of tests)
|
// 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)
|
project.tasks.findByName(kotlinCompilation.target.artifactsTaskName)?.dependsOn(kotlinTask)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -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.
|
* 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<KotlinCompilationType : KotlinCompil
|
|||||||
|
|
||||||
target.compilations.all { compilation ->
|
target.compilations.all { compilation ->
|
||||||
buildCompilationProcessor(compilation).run()
|
buildCompilationProcessor(compilation).run()
|
||||||
if (compilation.name == KotlinCompilation.MAIN_COMPILATION_NAME) {
|
if (compilation.isMain()) {
|
||||||
sourcesJarTask(compilation, target.targetName, target.targetName.toLowerCase())
|
sourcesJarTask(compilation, target.targetName, target.targetName.toLowerCase())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-3
@@ -17,7 +17,6 @@ import org.gradle.api.publish.PublicationContainer
|
|||||||
import org.gradle.api.publish.PublishingExtension
|
import org.gradle.api.publish.PublishingExtension
|
||||||
import org.gradle.api.publish.maven.MavenPublication
|
import org.gradle.api.publish.maven.MavenPublication
|
||||||
import org.gradle.api.publish.maven.internal.publication.MavenPublicationInternal
|
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.api.tasks.compile.AbstractCompile
|
||||||
import org.gradle.jvm.tasks.Jar
|
import org.gradle.jvm.tasks.Jar
|
||||||
import org.gradle.util.ConfigureUtil
|
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.scripting.internal.ScriptingGradleSubplugin
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTargetPreset
|
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTargetPreset
|
||||||
import org.jetbrains.kotlin.gradle.targets.metadata.isKotlinGranularMetadataEnabled
|
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.HostManager
|
||||||
import org.jetbrains.kotlin.konan.target.KonanTarget.*
|
import org.jetbrains.kotlin.konan.target.KonanTarget.*
|
||||||
import org.jetbrains.kotlin.konan.target.presetName
|
import org.jetbrains.kotlin.konan.target.presetName
|
||||||
@@ -371,7 +372,7 @@ internal fun Project.setupGeneralKotlinExtensionParameters() {
|
|||||||
CompilationSourceSetUtil.compilationsBySourceSets(project).filterValues { compilations ->
|
CompilationSourceSetUtil.compilationsBySourceSets(project).filterValues { compilations ->
|
||||||
compilations.any {
|
compilations.any {
|
||||||
// kotlin main compilation
|
// kotlin main compilation
|
||||||
it.name == KotlinCompilation.MAIN_COMPILATION_NAME
|
it.isMain()
|
||||||
// android compilation which is NOT in tested variant
|
// android compilation which is NOT in tested variant
|
||||||
|| (it as? KotlinJvmAndroidCompilation)?.let { getTestedVariantData(it.androidVariant) == null } == true
|
|| (it as? KotlinJvmAndroidCompilation)?.let { getTestedVariantData(it.androidVariant) == null } == true
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-2
@@ -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.
|
* 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.Project
|
||||||
import org.gradle.api.plugins.ExtraPropertiesExtension
|
import org.gradle.api.plugins.ExtraPropertiesExtension
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
|
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
|
/** 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
|
* 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 {
|
listOf(aLeader, bLeader).run {
|
||||||
/** heuristically choose the new leader: choose `main` when possible, don't choose `*test*` when there's an alternative,
|
/** 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 */
|
* 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("main", true) }
|
||||||
?: singleOrNull { !it.name.contains("test", true) }
|
?: singleOrNull { !it.name.contains("test", true) }
|
||||||
?: minBy { it.name }!!
|
?: minBy { it.name }!!
|
||||||
|
|||||||
+12
-10
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* 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.
|
* 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
|
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.TaskState
|
||||||
import org.gradle.api.tasks.bundling.AbstractArchiveTask
|
import org.gradle.api.tasks.bundling.AbstractArchiveTask
|
||||||
import org.gradle.util.ConfigureUtil
|
import org.gradle.util.ConfigureUtil
|
||||||
import org.jetbrains.kotlin.fir.resolve.getOrPut
|
|
||||||
import org.jetbrains.kotlin.gradle.dsl.*
|
import org.jetbrains.kotlin.gradle.dsl.*
|
||||||
import org.jetbrains.kotlin.gradle.plugin.*
|
import org.jetbrains.kotlin.gradle.plugin.*
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.internal.KotlinCompilationsModuleGroups
|
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.plugin.sources.getSourceSetHierarchy
|
||||||
import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile
|
import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile
|
||||||
import org.jetbrains.kotlin.gradle.tasks.locateTask
|
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 org.jetbrains.kotlin.gradle.utils.*
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import java.util.concurrent.Callable
|
import java.util.concurrent.Callable
|
||||||
@@ -39,6 +36,9 @@ internal fun KotlinCompilation<*>.composeName(prefix: String? = null, suffix: St
|
|||||||
return lowerCamelCaseName(prefix, targetNamePart, compilationNamePart, suffix)
|
return lowerCamelCaseName(prefix, targetNamePart, compilationNamePart, suffix)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal fun KotlinCompilation<*>.isMain(): Boolean =
|
||||||
|
name == KotlinCompilation.MAIN_COMPILATION_NAME
|
||||||
|
|
||||||
abstract class AbstractKotlinCompilation<T : KotlinCommonOptions>(
|
abstract class AbstractKotlinCompilation<T : KotlinCommonOptions>(
|
||||||
target: KotlinTarget,
|
target: KotlinTarget,
|
||||||
override val compilationName: String
|
override val compilationName: String
|
||||||
@@ -74,7 +74,7 @@ abstract class AbstractKotlinCompilation<T : KotlinCommonOptions>(
|
|||||||
get() = lowerCamelCaseName(
|
get() = lowerCamelCaseName(
|
||||||
target.disambiguationClassifier.takeIf { target !is KotlinMetadataTarget },
|
target.disambiguationClassifier.takeIf { target !is KotlinMetadataTarget },
|
||||||
when {
|
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
|
KotlinSourceSet.COMMON_MAIN_SOURCE_SET_NAME // corner case: main compilation of the metadata target compiles commonMain
|
||||||
else -> compilationName
|
else -> compilationName
|
||||||
}
|
}
|
||||||
@@ -207,12 +207,14 @@ abstract class AbstractKotlinCompilation<T : KotlinCommonOptions>(
|
|||||||
*/
|
*/
|
||||||
internal open val friendArtifacts: FileCollection
|
internal open val friendArtifacts: FileCollection
|
||||||
get() = with(target.project) {
|
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
|
// 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:
|
// that depends on this module's production part, include the main artifact in the friend artifacts, lazily:
|
||||||
files(
|
files(
|
||||||
provider {
|
provider {
|
||||||
listOfNotNull(tasks.withType(AbstractArchiveTask::class.java).findByName(target.artifactsTaskName)?.archivePathCompatible)
|
listOfNotNull(
|
||||||
|
tasks.withType(AbstractArchiveTask::class.java).findByName(target.artifactsTaskName)?.archivePathCompatible
|
||||||
|
)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
} else files()
|
} else files()
|
||||||
@@ -260,7 +262,7 @@ internal val KotlinCompilation<*>.ownModuleName: String
|
|||||||
val project = target.project
|
val project = target.project
|
||||||
val baseName = project.convention.findPlugin(BasePluginConvention::class.java)?.archivesBaseName
|
val baseName = project.convention.findPlugin(BasePluginConvention::class.java)?.archivesBaseName
|
||||||
?: project.name
|
?: project.name
|
||||||
val suffix = if (compilationName == KotlinCompilation.MAIN_COMPILATION_NAME) "" else "_$compilationName"
|
val suffix = if (isMain()) "" else "_$compilationName"
|
||||||
return filterModuleName("$baseName$suffix")
|
return filterModuleName("$baseName$suffix")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-1
@@ -11,6 +11,7 @@ import org.gradle.api.plugins.ExtensionAware
|
|||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
|
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
|
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinTargetWithBinaries
|
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.KotlinJsTarget
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryMode
|
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryMode
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryMode.DEVELOPMENT
|
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryMode.DEVELOPMENT
|
||||||
@@ -140,7 +141,7 @@ constructor(
|
|||||||
jsBinaryType: KotlinJsBinaryType?
|
jsBinaryType: KotlinJsBinaryType?
|
||||||
) =
|
) =
|
||||||
lowerCamelCaseName(
|
lowerCamelCaseName(
|
||||||
compilation.name.let { if (it == KotlinCompilation.MAIN_COMPILATION_NAME) null else it },
|
if (compilation.isMain()) null else compilation.name,
|
||||||
mode.name.toLowerCase(),
|
mode.name.toLowerCase(),
|
||||||
jsBinaryType?.name?.toLowerCase()
|
jsBinaryType?.name?.toLowerCase()
|
||||||
)
|
)
|
||||||
|
|||||||
+2
-1
@@ -13,6 +13,7 @@ import org.gradle.language.base.plugins.LifecycleBasePlugin
|
|||||||
import org.jetbrains.kotlin.gradle.plugin.AbstractKotlinTargetConfigurator
|
import org.jetbrains.kotlin.gradle.plugin.AbstractKotlinTargetConfigurator
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
|
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinTargetWithTests
|
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.plugin.whenEvaluated
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsPlatformTestRun
|
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsPlatformTestRun
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryMode
|
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryMode
|
||||||
@@ -148,7 +149,7 @@ abstract class KotlinJsIrSubTarget(
|
|||||||
|
|
||||||
private fun configureMain() {
|
private fun configureMain() {
|
||||||
target.compilations.all { compilation ->
|
target.compilations.all { compilation ->
|
||||||
if (compilation.name == KotlinCompilation.MAIN_COMPILATION_NAME) {
|
if (compilation.isMain()) {
|
||||||
configureMain(compilation)
|
configureMain(compilation)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -72,7 +72,7 @@ open class KotlinJsIrTargetConfigurator(kotlinPluginVersion: String) :
|
|||||||
)
|
)
|
||||||
|
|
||||||
// Configure FQ module name to avoid cyclic dependencies in klib manifests (see KT-36721).
|
// 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
|
target.project.name
|
||||||
} else {
|
} else {
|
||||||
"${target.project.name}_${compilation.name}"
|
"${target.project.name}_${compilation.name}"
|
||||||
|
|||||||
+1
-1
@@ -59,7 +59,7 @@ internal class KotlinCompilationNpmResolver(
|
|||||||
it.dependsOn(nodeJs.npmInstallTask)
|
it.dependsOn(nodeJs.npmInstallTask)
|
||||||
it.dependsOn(packageJsonTaskHolder)
|
it.dependsOn(packageJsonTaskHolder)
|
||||||
}.also { packageJsonTask ->
|
}.also { packageJsonTask ->
|
||||||
if (compilation.name == KotlinCompilation.MAIN_COMPILATION_NAME) {
|
if (compilation.isMain()) {
|
||||||
project.tasks
|
project.tasks
|
||||||
.withType(Zip::class.java)
|
.withType(Zip::class.java)
|
||||||
.named(npmProject.target.artifactsTaskName)
|
.named(npmProject.target.artifactsTaskName)
|
||||||
|
|||||||
+2
-2
@@ -7,8 +7,8 @@ package org.jetbrains.kotlin.gradle.targets.js.npm.resolver
|
|||||||
|
|
||||||
import org.gradle.api.Project
|
import org.gradle.api.Project
|
||||||
import org.gradle.api.Task
|
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.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.dukat.DukatRootResolverPlugin
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrCompilation
|
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrCompilation
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension
|
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<KotlinCompilationNpmResolver>? {
|
fun findDependentResolver(src: Project, target: Project): List<KotlinCompilationNpmResolver>? {
|
||||||
// todo: proper finding using KotlinTargetComponent.findUsageContext
|
// todo: proper finding using KotlinTargetComponent.findUsageContext
|
||||||
val targetResolver = this[target]
|
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()) {
|
return if (mainCompilations.isNotEmpty()) {
|
||||||
//TODO[Ilya Goncharov] Hack for Mixed mode of legacy and IR tooling
|
//TODO[Ilya Goncharov] Hack for Mixed mode of legacy and IR tooling
|
||||||
|
|||||||
+2
-1
@@ -14,6 +14,7 @@ import org.jetbrains.kotlin.gradle.plugin.AbstractKotlinTargetConfigurator
|
|||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
|
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinTargetWithTests
|
import org.jetbrains.kotlin.gradle.plugin.KotlinTargetWithTests
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
|
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.plugin.whenEvaluated
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsPlatformTestRun
|
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsPlatformTestRun
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget
|
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget
|
||||||
@@ -138,7 +139,7 @@ abstract class KotlinJsSubTarget(
|
|||||||
|
|
||||||
private fun configureMain() {
|
private fun configureMain() {
|
||||||
target.compilations.all { compilation ->
|
target.compilations.all { compilation ->
|
||||||
if (compilation.name == KotlinCompilation.MAIN_COMPILATION_NAME) {
|
if (compilation.isMain()) {
|
||||||
configureMain(compilation)
|
configureMain(compilation)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-3
@@ -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.
|
* 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.plugins.BasePlugin
|
||||||
import org.gradle.api.tasks.Copy
|
import org.gradle.api.tasks.Copy
|
||||||
import org.gradle.api.tasks.Exec
|
import org.gradle.api.tasks.Exec
|
||||||
import org.gradle.api.tasks.TaskProvider
|
|
||||||
import org.gradle.language.base.plugins.LifecycleBasePlugin
|
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.MAIN_COMPILATION_NAME
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation.Companion.TEST_COMPILATION_NAME
|
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation.Companion.TEST_COMPILATION_NAME
|
||||||
@@ -170,7 +169,7 @@ open class KotlinNativeTargetConfigurator<T : KotlinNativeTarget>(
|
|||||||
|
|
||||||
project.tasks.getByName(compilation.compileAllTaskName).dependsOn(compileTask)
|
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!")
|
compilation as? KotlinNativeCompilation ?: error("Main shared-Native compilation is not yet supported!")
|
||||||
|
|
||||||
project.tasks.getByName(compilation.target.artifactsTaskName).apply {
|
project.tasks.getByName(compilation.target.artifactsTaskName).apply {
|
||||||
|
|||||||
+2
-2
@@ -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.
|
* 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)
|
get() = HostManager().isEnabled(this)
|
||||||
|
|
||||||
internal val AbstractKotlinNativeCompilation.isMainCompilation: Boolean
|
internal val AbstractKotlinNativeCompilation.isMainCompilation: Boolean
|
||||||
get() = name == KotlinCompilation.MAIN_COMPILATION_NAME
|
get() = isMain()
|
||||||
|
|
||||||
// KonanVersion doesn't provide an API to compare versions,
|
// KonanVersion doesn't provide an API to compare versions,
|
||||||
// so we have to transform it to KotlinVersion first.
|
// so we have to transform it to KotlinVersion first.
|
||||||
|
|||||||
Reference in New Issue
Block a user