[Gradle, JS] Remove produceExecutable
This commit is contained in:
+10
@@ -8,11 +8,14 @@
|
|||||||
// Old package for compatibility
|
// Old package for compatibility
|
||||||
package org.jetbrains.kotlin.gradle.plugin.mpp
|
package org.jetbrains.kotlin.gradle.plugin.mpp
|
||||||
|
|
||||||
|
import org.gradle.util.WrapUtil
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinJsOptions
|
import org.jetbrains.kotlin.gradle.dsl.KotlinJsOptions
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
|
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilationWithResources
|
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilationWithResources
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinTarget
|
import org.jetbrains.kotlin.gradle.plugin.KotlinTarget
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget
|
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget
|
||||||
|
import org.jetbrains.kotlin.gradle.targets.js.ir.JsBinary
|
||||||
|
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsBinaryContainer
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.npm.PackageJson
|
import org.jetbrains.kotlin.gradle.targets.js.npm.PackageJson
|
||||||
import org.jetbrains.kotlin.gradle.tasks.Kotlin2JsCompile
|
import org.jetbrains.kotlin.gradle.tasks.Kotlin2JsCompile
|
||||||
import org.jetbrains.kotlin.gradle.utils.*
|
import org.jetbrains.kotlin.gradle.utils.*
|
||||||
@@ -21,6 +24,13 @@ open class KotlinJsCompilation(
|
|||||||
target: KotlinTarget,
|
target: KotlinTarget,
|
||||||
name: String
|
name: String
|
||||||
) : AbstractKotlinCompilationToRunnableFiles<KotlinJsOptions>(target, name), KotlinCompilationWithResources<KotlinJsOptions> {
|
) : AbstractKotlinCompilationToRunnableFiles<KotlinJsOptions>(target, name), KotlinCompilationWithResources<KotlinJsOptions> {
|
||||||
|
internal val binaries: KotlinJsBinaryContainer =
|
||||||
|
target.project.objects.newInstance(
|
||||||
|
KotlinJsBinaryContainer::class.java,
|
||||||
|
target,
|
||||||
|
WrapUtil.toDomainObjectSet(JsBinary::class.java)
|
||||||
|
)
|
||||||
|
|
||||||
override val processResourcesTaskName: String
|
override val processResourcesTaskName: String
|
||||||
get() = disambiguateName("processResources")
|
get() = disambiguateName("processResources")
|
||||||
|
|
||||||
|
|||||||
+10
-42
@@ -8,18 +8,19 @@ package org.jetbrains.kotlin.gradle.targets.js
|
|||||||
import org.gradle.api.NamedDomainObjectContainer
|
import org.gradle.api.NamedDomainObjectContainer
|
||||||
import org.gradle.api.Project
|
import org.gradle.api.Project
|
||||||
import org.gradle.api.tasks.TaskProvider
|
import org.gradle.api.tasks.TaskProvider
|
||||||
import org.gradle.util.WrapUtil
|
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
|
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
|
||||||
import org.jetbrains.kotlin.gradle.dsl.kotlinExtension
|
import org.jetbrains.kotlin.gradle.dsl.kotlinExtension
|
||||||
import org.jetbrains.kotlin.gradle.plugin.*
|
import org.jetbrains.kotlin.gradle.plugin.*
|
||||||
import org.jetbrains.kotlin.gradle.plugin.AbstractKotlinTargetConfigurator.Companion.runTaskNameSuffix
|
import org.jetbrains.kotlin.gradle.plugin.AbstractKotlinTargetConfigurator.Companion.runTaskNameSuffix
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation.Companion.MAIN_COMPILATION_NAME
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.*
|
import org.jetbrains.kotlin.gradle.plugin.mpp.*
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.dsl.*
|
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBrowserDsl
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.ir.JsBinary
|
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsNodeDsl
|
||||||
|
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsSubTargetContainerDsl
|
||||||
|
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsTargetDsl
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsBinaryContainer
|
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsBinaryContainer
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTarget
|
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTarget
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.subtargets.KotlinBrowserJs
|
import org.jetbrains.kotlin.gradle.targets.js.subtargets.KotlinBrowserJs
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.subtargets.KotlinJsSubTarget
|
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.subtargets.KotlinNodeJs
|
import org.jetbrains.kotlin.gradle.targets.js.subtargets.KotlinNodeJs
|
||||||
import org.jetbrains.kotlin.gradle.tasks.locateTask
|
import org.jetbrains.kotlin.gradle.tasks.locateTask
|
||||||
import org.jetbrains.kotlin.gradle.testing.internal.KotlinTestReport
|
import org.jetbrains.kotlin.gradle.testing.internal.KotlinTestReport
|
||||||
@@ -79,17 +80,13 @@ constructor(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var producingType: KotlinJsProducingType? = null
|
|
||||||
|
|
||||||
@Deprecated("Use produceExecutable instead", ReplaceWith("produceExecutable()"))
|
|
||||||
override val binaries: KotlinJsBinaryContainer
|
override val binaries: KotlinJsBinaryContainer
|
||||||
get() {
|
get() {
|
||||||
return irTarget?.binaries
|
irTarget?.let { throw IllegalStateException("Unfortunately you can't use binaries in 'both' mode") }
|
||||||
?: project.objects.newInstance(
|
return compilations.withType(KotlinJsCompilation::class.java)
|
||||||
KotlinJsBinaryContainer::class.java,
|
.named(MAIN_COMPILATION_NAME)
|
||||||
this,
|
.map { it.binaries }
|
||||||
WrapUtil.toDomainObjectSet(JsBinary::class.java)
|
.get()
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var irTarget: KotlinJsIrTarget? = null
|
var irTarget: KotlinJsIrTarget? = null
|
||||||
@@ -150,35 +147,6 @@ constructor(
|
|||||||
irTarget?.nodejs(body)
|
irTarget?.nodejs(body)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun produceExecutable() {
|
|
||||||
produce(KotlinJsProducingType.EXECUTABLE) {
|
|
||||||
(this as KotlinJsSubTarget).produceExecutable()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun produce(
|
|
||||||
producingType: KotlinJsProducingType,
|
|
||||||
producer: KotlinJsSubTargetDsl.() -> Unit = {}
|
|
||||||
) {
|
|
||||||
check(this.producingType == null || this.producingType == producingType) {
|
|
||||||
"Only one producing type supported. Try to set $producingType but previously ${this.producingType} found"
|
|
||||||
}
|
|
||||||
|
|
||||||
this.producingType = producingType
|
|
||||||
|
|
||||||
whenBrowserConfigured {
|
|
||||||
if (this is KotlinBrowserJs) {
|
|
||||||
producer()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
whenNodejsConfigured {
|
|
||||||
if (this is KotlinNodeJs) {
|
|
||||||
producer()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun whenBrowserConfigured(body: KotlinJsBrowserDsl.() -> Unit) {
|
override fun whenBrowserConfigured(body: KotlinJsBrowserDsl.() -> Unit) {
|
||||||
if (browserLazyDelegate.isInitialized()) {
|
if (browserLazyDelegate.isInitialized()) {
|
||||||
browser(body)
|
browser(body)
|
||||||
|
|||||||
-2
@@ -49,8 +49,6 @@ interface KotlinJsTargetDsl : KotlinTarget {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun produceExecutable()
|
|
||||||
|
|
||||||
fun useCommonJs()
|
fun useCommonJs()
|
||||||
|
|
||||||
val binaries: KotlinJsBinaryContainer
|
val binaries: KotlinJsBinaryContainer
|
||||||
|
|||||||
+17
-11
@@ -11,10 +11,12 @@ 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.targets.js.KotlinJsTarget
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.dsl.BuildVariantKind
|
import org.jetbrains.kotlin.gradle.targets.js.dsl.BuildVariantKind
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.dsl.BuildVariantKind.DEVELOPMENT
|
import org.jetbrains.kotlin.gradle.targets.js.dsl.BuildVariantKind.DEVELOPMENT
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.dsl.BuildVariantKind.PRODUCTION
|
import org.jetbrains.kotlin.gradle.targets.js.dsl.BuildVariantKind.PRODUCTION
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsSubTargetContainerDsl
|
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsSubTargetContainerDsl
|
||||||
|
import org.jetbrains.kotlin.gradle.targets.js.subtargets.KotlinJsSubTarget
|
||||||
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
@@ -36,20 +38,24 @@ constructor(
|
|||||||
fun executable(
|
fun executable(
|
||||||
compilation: KotlinJsCompilation = defaultCompilation
|
compilation: KotlinJsCompilation = defaultCompilation
|
||||||
) {
|
) {
|
||||||
if (compilation !is KotlinJsIrCompilation) {
|
|
||||||
project.logger.warn(
|
|
||||||
"binaries.executable configuration is useless with IR compiler." +
|
|
||||||
"Use produceExecutable() instead"
|
|
||||||
)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
(target as KotlinJsSubTargetContainerDsl).whenBrowserConfigured {
|
(target as KotlinJsSubTargetContainerDsl).whenBrowserConfigured {
|
||||||
(this as KotlinJsIrSubTarget).produceExecutable()
|
if (target is KotlinJsIrTarget) {
|
||||||
|
(this as KotlinJsIrSubTarget).produceExecutable()
|
||||||
|
}
|
||||||
|
|
||||||
|
if (target is KotlinJsTarget) {
|
||||||
|
(this as KotlinJsSubTarget).produceExecutable()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
target.whenNodejsConfigured {
|
(target as KotlinJsSubTargetContainerDsl).whenNodejsConfigured {
|
||||||
(this as KotlinJsIrSubTarget).produceExecutable()
|
if (target is KotlinJsIrTarget) {
|
||||||
|
(this as KotlinJsIrSubTarget).produceExecutable()
|
||||||
|
}
|
||||||
|
|
||||||
|
if (target is KotlinJsTarget) {
|
||||||
|
(this as KotlinJsSubTarget).produceExecutable()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
compilation.binaries.executableInternal(compilation)
|
compilation.binaries.executableInternal(compilation)
|
||||||
|
|||||||
-8
@@ -6,7 +6,6 @@
|
|||||||
package org.jetbrains.kotlin.gradle.targets.js.ir
|
package org.jetbrains.kotlin.gradle.targets.js.ir
|
||||||
|
|
||||||
import org.gradle.api.file.SourceDirectorySet
|
import org.gradle.api.file.SourceDirectorySet
|
||||||
import org.gradle.util.WrapUtil
|
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
|
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinTarget
|
import org.jetbrains.kotlin.gradle.plugin.KotlinTarget
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
|
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
|
||||||
@@ -17,13 +16,6 @@ class KotlinJsIrCompilation(
|
|||||||
name: String
|
name: String
|
||||||
) : KotlinJsCompilation(target, name) {
|
) : KotlinJsCompilation(target, name) {
|
||||||
|
|
||||||
internal val binaries: KotlinJsBinaryContainer =
|
|
||||||
target.project.objects.newInstance(
|
|
||||||
KotlinJsBinaryContainer::class.java,
|
|
||||||
target,
|
|
||||||
WrapUtil.toDomainObjectSet(JsBinary::class.java)
|
|
||||||
)
|
|
||||||
|
|
||||||
internal val allSources: MutableSet<SourceDirectorySet> = mutableSetOf()
|
internal val allSources: MutableSet<SourceDirectorySet> = mutableSetOf()
|
||||||
|
|
||||||
override fun addSourcesToCompileTask(sourceSet: KotlinSourceSet, addAsCommonSources: Lazy<Boolean>) {
|
override fun addSourcesToCompileTask(sourceSet: KotlinSourceSet, addAsCommonSources: Lazy<Boolean>) {
|
||||||
|
|||||||
-5
@@ -97,11 +97,6 @@ constructor(
|
|||||||
body(nodejs)
|
body(nodejs)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Deprecated("Use binaries.executable instead", ReplaceWith("binaries.executable()"))
|
|
||||||
override fun produceExecutable() {
|
|
||||||
project.logger.warn("produceExecutable configuration is useless with IR compiler")
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun whenBrowserConfigured(body: KotlinJsBrowserDsl.() -> Unit) {
|
override fun whenBrowserConfigured(body: KotlinJsBrowserDsl.() -> Unit) {
|
||||||
if (browserLazyDelegate.isInitialized()) {
|
if (browserLazyDelegate.isInitialized()) {
|
||||||
browser(body)
|
browser(body)
|
||||||
|
|||||||
Reference in New Issue
Block a user