[Gradle, JS] Delegates all calls from js target to ir target
This commit is contained in:
+4
-1
@@ -20,8 +20,11 @@ import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig
|
|||||||
import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig.Devtool
|
import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig.Devtool
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig.Mode
|
import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig.Mode
|
||||||
import org.jetbrains.kotlin.gradle.tasks.registerTask
|
import org.jetbrains.kotlin.gradle.tasks.registerTask
|
||||||
|
import org.slf4j.LoggerFactory
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
private val log = LoggerFactory.getLogger("org.jetbrains.kotlin.gradle.targets.js.ir")
|
||||||
|
|
||||||
open class KotlinBrowserJsIr @Inject constructor(target: KotlinJsIrTarget) :
|
open class KotlinBrowserJsIr @Inject constructor(target: KotlinJsIrTarget) :
|
||||||
KotlinJsIrSubTarget(target, "browser"),
|
KotlinJsIrSubTarget(target, "browser"),
|
||||||
KotlinJsBrowserDsl {
|
KotlinJsBrowserDsl {
|
||||||
@@ -56,7 +59,7 @@ open class KotlinBrowserJsIr @Inject constructor(target: KotlinJsIrTarget) :
|
|||||||
|
|
||||||
@ExperimentalDceDsl
|
@ExperimentalDceDsl
|
||||||
override fun dceTask(body: KotlinJsDce.() -> Unit) {
|
override fun dceTask(body: KotlinJsDce.() -> Unit) {
|
||||||
TODO("Not yet implemented")
|
log.warn("dceTask configuration is useless with IR compiler. Use @JsExport on declarations instead.")
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun configureMain(compilation: KotlinJsIrCompilation) {
|
override fun configureMain(compilation: KotlinJsIrCompilation) {
|
||||||
|
|||||||
+15
-2
@@ -16,6 +16,7 @@ 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.targets.js.KotlinJsTarget
|
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.dsl.*
|
import org.jetbrains.kotlin.gradle.targets.js.dsl.*
|
||||||
|
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinBrowserJsIr
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin
|
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject
|
import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest
|
import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest
|
||||||
@@ -43,14 +44,17 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) :
|
|||||||
override val testTaskDescription: String
|
override val testTaskDescription: String
|
||||||
get() = "Run all ${target.name} tests inside browser using karma and webpack"
|
get() = "Run all ${target.name} tests inside browser using karma and webpack"
|
||||||
|
|
||||||
|
private val irBrowser: KotlinBrowserJsIr?
|
||||||
|
get() = target.irTarget?.browser
|
||||||
|
|
||||||
override fun produceKotlinLibrary() {
|
override fun produceKotlinLibrary() {
|
||||||
super.produceKotlinLibrary()
|
super.produceKotlinLibrary()
|
||||||
target.irTarget?.browser?.produceKotlinLibrary()
|
irBrowser?.produceKotlinLibrary()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun produceExecutable() {
|
override fun produceExecutable() {
|
||||||
super.produceExecutable()
|
super.produceExecutable()
|
||||||
target.irTarget?.browser?.produceExecutable()
|
irBrowser?.produceExecutable()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun configureDefaultTestFramework(testTask: KotlinJsTest) {
|
override fun configureDefaultTestFramework(testTask: KotlinJsTest) {
|
||||||
@@ -61,20 +65,29 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) :
|
|||||||
|
|
||||||
override fun runTask(body: KotlinWebpack.() -> Unit) {
|
override fun runTask(body: KotlinWebpack.() -> Unit) {
|
||||||
commonRunConfigurations.add(body)
|
commonRunConfigurations.add(body)
|
||||||
|
irBrowser?.runTask(body)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ExperimentalDistributionDsl
|
@ExperimentalDistributionDsl
|
||||||
override fun distribution(body: Distribution.() -> Unit) {
|
override fun distribution(body: Distribution.() -> Unit) {
|
||||||
distribution.body()
|
distribution.body()
|
||||||
|
target.irTarget?.browser?.distribution(body)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun webpackTask(body: KotlinWebpack.() -> Unit) {
|
override fun webpackTask(body: KotlinWebpack.() -> Unit) {
|
||||||
commonWebpackConfigurations.add(body)
|
commonWebpackConfigurations.add(body)
|
||||||
|
irBrowser?.webpackTask(body)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ExperimentalDceDsl
|
@ExperimentalDceDsl
|
||||||
override fun dceTask(body: KotlinJsDce.() -> Unit) {
|
override fun dceTask(body: KotlinJsDce.() -> Unit) {
|
||||||
dceConfigurations.add(body)
|
dceConfigurations.add(body)
|
||||||
|
irBrowser?.dceTask(body)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun testTask(body: KotlinJsTest.() -> Unit) {
|
||||||
|
super<KotlinJsSubTarget>.testTask(body)
|
||||||
|
irBrowser?.testTask(body)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun configureMain(compilation: KotlinJsCompilation) {
|
override fun configureMain(compilation: KotlinJsCompilation) {
|
||||||
|
|||||||
+12
-2
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.gradle.targets.js.subtargets
|
|||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
|
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget
|
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsNodeDsl
|
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsNodeDsl
|
||||||
|
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinNodeJsIr
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsExec
|
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsExec
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest
|
import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
@@ -20,18 +21,27 @@ open class KotlinNodeJs @Inject constructor(target: KotlinJsTarget) :
|
|||||||
|
|
||||||
private val runTaskName = disambiguateCamelCased("run")
|
private val runTaskName = disambiguateCamelCased("run")
|
||||||
|
|
||||||
|
private val irNodejs: KotlinNodeJsIr?
|
||||||
|
get() = target.irTarget?.nodejs
|
||||||
|
|
||||||
override fun produceKotlinLibrary() {
|
override fun produceKotlinLibrary() {
|
||||||
super.produceKotlinLibrary()
|
super.produceKotlinLibrary()
|
||||||
target.irTarget?.nodejs?.produceKotlinLibrary()
|
irNodejs?.produceKotlinLibrary()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun produceExecutable() {
|
override fun produceExecutable() {
|
||||||
super.produceExecutable()
|
super.produceExecutable()
|
||||||
target.irTarget?.nodejs?.produceExecutable()
|
irNodejs?.produceExecutable()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun runTask(body: NodeJsExec.() -> Unit) {
|
override fun runTask(body: NodeJsExec.() -> Unit) {
|
||||||
(project.tasks.getByName(runTaskName) as NodeJsExec).body()
|
(project.tasks.getByName(runTaskName) as NodeJsExec).body()
|
||||||
|
irNodejs?.runTask(body)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun testTask(body: KotlinJsTest.() -> Unit) {
|
||||||
|
super<KotlinJsSubTarget>.testTask(body)
|
||||||
|
irNodejs?.testTask(body)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun configureDefaultTestFramework(testTask: KotlinJsTest) {
|
override fun configureDefaultTestFramework(testTask: KotlinJsTest) {
|
||||||
|
|||||||
Reference in New Issue
Block a user