[Gradle, JS] Create KotlinJsIrCompilationFactory
This commit is contained in:
+4
-4
@@ -23,8 +23,8 @@ class KotlinJsIrCompilation(
|
|||||||
target.targetName
|
target.targetName
|
||||||
)
|
)
|
||||||
|
|
||||||
val productionCompileTask: Kotlin2JsCompile =
|
val productionCompileTask: Kotlin2JsCompile
|
||||||
(target.project.tasks.getByName(productionCompileTaskName) as Kotlin2JsCompile)
|
get() = (target.project.tasks.getByName(productionCompileTaskName) as Kotlin2JsCompile)
|
||||||
|
|
||||||
val developmentCompileTaskName: String = lowerCamelCaseName(
|
val developmentCompileTaskName: String = lowerCamelCaseName(
|
||||||
"compile",
|
"compile",
|
||||||
@@ -34,6 +34,6 @@ class KotlinJsIrCompilation(
|
|||||||
target.targetName
|
target.targetName
|
||||||
)
|
)
|
||||||
|
|
||||||
val developmentCompileTask: Kotlin2JsCompile =
|
val developmentCompileTask: Kotlin2JsCompile
|
||||||
(target.project.tasks.getByName(developmentCompileTaskName) as Kotlin2JsCompile)
|
get() = (target.project.tasks.getByName(developmentCompileTaskName) as Kotlin2JsCompile)
|
||||||
}
|
}
|
||||||
+22
@@ -0,0 +1,22 @@
|
|||||||
|
/*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.gradle.targets.js.ir
|
||||||
|
|
||||||
|
import org.gradle.api.Project
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinCompilationFactory
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinOnlyTarget
|
||||||
|
|
||||||
|
class KotlinJsIrCompilationFactory(
|
||||||
|
val project: Project,
|
||||||
|
val target: KotlinOnlyTarget<KotlinJsIrCompilation>
|
||||||
|
) : KotlinCompilationFactory<KotlinJsIrCompilation> {
|
||||||
|
override val itemClass: Class<KotlinJsIrCompilation>
|
||||||
|
get() = KotlinJsIrCompilation::class.java
|
||||||
|
|
||||||
|
override fun create(name: String): KotlinJsIrCompilation =
|
||||||
|
KotlinJsIrCompilation(target, name)
|
||||||
|
}
|
||||||
+1
-1
@@ -25,7 +25,7 @@ import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
|||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
open class KotlinJsIrTarget @Inject constructor(project: Project, platformType: KotlinPlatformType) :
|
open class KotlinJsIrTarget @Inject constructor(project: Project, platformType: KotlinPlatformType) :
|
||||||
KotlinOnlyTarget<KotlinJsCompilation>(project, platformType),
|
KotlinOnlyTarget<KotlinJsIrCompilation>(project, platformType),
|
||||||
KotlinTargetWithTests<JsIrAggregatingExecutionSource, KotlinJsIrReportAggregatingTestRun>,
|
KotlinTargetWithTests<JsIrAggregatingExecutionSource, KotlinJsIrReportAggregatingTestRun>,
|
||||||
KotlinJsIrTargetDsl {
|
KotlinJsIrTargetDsl {
|
||||||
override lateinit var testRuns: NamedDomainObjectContainer<KotlinJsIrReportAggregatingTestRun>
|
override lateinit var testRuns: NamedDomainObjectContainer<KotlinJsIrReportAggregatingTestRun>
|
||||||
|
|||||||
+2
-2
@@ -16,7 +16,7 @@ import org.jetbrains.kotlin.gradle.testing.internal.kotlinTestRegistry
|
|||||||
import org.jetbrains.kotlin.gradle.testing.testTaskName
|
import org.jetbrains.kotlin.gradle.testing.testTaskName
|
||||||
|
|
||||||
open class KotlinJsIrTargetConfigurator(kotlinPluginVersion: String) :
|
open class KotlinJsIrTargetConfigurator(kotlinPluginVersion: String) :
|
||||||
KotlinOnlyTargetConfigurator<KotlinJsCompilation, KotlinJsIrTarget>(true, true, kotlinPluginVersion),
|
KotlinOnlyTargetConfigurator<KotlinJsIrCompilation, KotlinJsIrTarget>(true, true, kotlinPluginVersion),
|
||||||
KotlinTargetWithTestsConfigurator<KotlinJsIrReportAggregatingTestRun, KotlinJsIrTarget> {
|
KotlinTargetWithTestsConfigurator<KotlinJsIrReportAggregatingTestRun, KotlinJsIrTarget> {
|
||||||
|
|
||||||
override val testRunClass: Class<KotlinJsIrReportAggregatingTestRun> get() = KotlinJsIrReportAggregatingTestRun::class.java
|
override val testRunClass: Class<KotlinJsIrReportAggregatingTestRun> get() = KotlinJsIrReportAggregatingTestRun::class.java
|
||||||
@@ -44,7 +44,7 @@ open class KotlinJsIrTargetConfigurator(kotlinPluginVersion: String) :
|
|||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun buildCompilationProcessor(compilation: KotlinJsCompilation): KotlinSourceSetProcessor<*> {
|
override fun buildCompilationProcessor(compilation: KotlinJsIrCompilation): KotlinSourceSetProcessor<*> {
|
||||||
val tasksProvider = KotlinTasksProvider(compilation.target.targetName)
|
val tasksProvider = KotlinTasksProvider(compilation.target.targetName)
|
||||||
return KotlinJsIrSourceSetProcessor(compilation.target.project, tasksProvider, compilation, kotlinPluginVersion)
|
return KotlinJsIrSourceSetProcessor(compilation.target.project, tasksProvider, compilation, kotlinPluginVersion)
|
||||||
}
|
}
|
||||||
|
|||||||
+12
-7
@@ -6,8 +6,9 @@
|
|||||||
package org.jetbrains.kotlin.gradle.targets.js.ir
|
package org.jetbrains.kotlin.gradle.targets.js.ir
|
||||||
|
|
||||||
import org.gradle.api.Project
|
import org.gradle.api.Project
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.KotlinOnlyTargetConfigurator
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
|
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
|
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinCompilationFactory
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilationFactory
|
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilationFactory
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinOnlyTarget
|
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinOnlyTarget
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinOnlyTargetPreset
|
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinOnlyTargetPreset
|
||||||
@@ -15,7 +16,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinOnlyTargetPreset
|
|||||||
open class KotlinJsIrTargetPreset(
|
open class KotlinJsIrTargetPreset(
|
||||||
project: Project,
|
project: Project,
|
||||||
kotlinPluginVersion: String
|
kotlinPluginVersion: String
|
||||||
) : KotlinOnlyTargetPreset<KotlinJsIrTarget, KotlinJsCompilation>(
|
) : KotlinOnlyTargetPreset<KotlinJsIrTarget, KotlinJsIrCompilation>(
|
||||||
project,
|
project,
|
||||||
kotlinPluginVersion
|
kotlinPluginVersion
|
||||||
) {
|
) {
|
||||||
@@ -26,12 +27,15 @@ open class KotlinJsIrTargetPreset(
|
|||||||
return project.objects.newInstance(KotlinJsIrTarget::class.java, project, platformType)
|
return project.objects.newInstance(KotlinJsIrTarget::class.java, project, platformType)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun createKotlinTargetConfigurator() = KotlinJsIrTargetConfigurator(kotlinPluginVersion)
|
override fun createKotlinTargetConfigurator(): KotlinOnlyTargetConfigurator<KotlinJsIrCompilation, KotlinJsIrTarget> =
|
||||||
|
KotlinJsIrTargetConfigurator(kotlinPluginVersion)
|
||||||
|
|
||||||
override fun getName(): String = PRESET_NAME
|
override fun getName(): String = PRESET_NAME
|
||||||
|
|
||||||
override fun createCompilationFactory(forTarget: KotlinOnlyTarget<KotlinJsCompilation>) =
|
override fun createCompilationFactory(
|
||||||
KotlinJsCompilationFactory(project, forTarget)
|
forTarget: KotlinOnlyTarget<KotlinJsIrCompilation>
|
||||||
|
): KotlinCompilationFactory<KotlinJsIrCompilation> =
|
||||||
|
KotlinJsIrCompilationFactory(project, forTarget)
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val PRESET_NAME = "jsIr"
|
const val PRESET_NAME = "jsIr"
|
||||||
@@ -45,7 +49,8 @@ class KotlinJsIrSingleTargetPreset(
|
|||||||
KotlinJsIrTargetPreset(project, kotlinPluginVersion) {
|
KotlinJsIrTargetPreset(project, kotlinPluginVersion) {
|
||||||
|
|
||||||
// In a Kotlin/JS single-platform project, we don't need any disambiguation suffixes or prefixes in the names:
|
// In a Kotlin/JS single-platform project, we don't need any disambiguation suffixes or prefixes in the names:
|
||||||
override fun provideTargetDisambiguationClassifier(target: KotlinOnlyTarget<KotlinJsCompilation>): String? = null
|
override fun provideTargetDisambiguationClassifier(target: KotlinOnlyTarget<KotlinJsIrCompilation>): String? = null
|
||||||
|
|
||||||
override fun createKotlinTargetConfigurator() = KotlinJsIrTargetConfigurator(kotlinPluginVersion)
|
override fun createKotlinTargetConfigurator(): KotlinOnlyTargetConfigurator<KotlinJsIrCompilation, KotlinJsIrTarget> =
|
||||||
|
KotlinJsIrTargetConfigurator(kotlinPluginVersion)
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user