[Gradle, JS] Create KotlinJsIrCompilationFactory
This commit is contained in:
+4
-4
@@ -23,8 +23,8 @@ class KotlinJsIrCompilation(
|
||||
target.targetName
|
||||
)
|
||||
|
||||
val productionCompileTask: Kotlin2JsCompile =
|
||||
(target.project.tasks.getByName(productionCompileTaskName) as Kotlin2JsCompile)
|
||||
val productionCompileTask: Kotlin2JsCompile
|
||||
get() = (target.project.tasks.getByName(productionCompileTaskName) as Kotlin2JsCompile)
|
||||
|
||||
val developmentCompileTaskName: String = lowerCamelCaseName(
|
||||
"compile",
|
||||
@@ -34,6 +34,6 @@ class KotlinJsIrCompilation(
|
||||
target.targetName
|
||||
)
|
||||
|
||||
val developmentCompileTask: Kotlin2JsCompile =
|
||||
(target.project.tasks.getByName(developmentCompileTaskName) as Kotlin2JsCompile)
|
||||
val developmentCompileTask: 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
|
||||
|
||||
open class KotlinJsIrTarget @Inject constructor(project: Project, platformType: KotlinPlatformType) :
|
||||
KotlinOnlyTarget<KotlinJsCompilation>(project, platformType),
|
||||
KotlinOnlyTarget<KotlinJsIrCompilation>(project, platformType),
|
||||
KotlinTargetWithTests<JsIrAggregatingExecutionSource, KotlinJsIrReportAggregatingTestRun>,
|
||||
KotlinJsIrTargetDsl {
|
||||
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
|
||||
|
||||
open class KotlinJsIrTargetConfigurator(kotlinPluginVersion: String) :
|
||||
KotlinOnlyTargetConfigurator<KotlinJsCompilation, KotlinJsIrTarget>(true, true, kotlinPluginVersion),
|
||||
KotlinOnlyTargetConfigurator<KotlinJsIrCompilation, KotlinJsIrTarget>(true, true, kotlinPluginVersion),
|
||||
KotlinTargetWithTestsConfigurator<KotlinJsIrReportAggregatingTestRun, KotlinJsIrTarget> {
|
||||
|
||||
override val testRunClass: Class<KotlinJsIrReportAggregatingTestRun> get() = KotlinJsIrReportAggregatingTestRun::class.java
|
||||
@@ -44,7 +44,7 @@ open class KotlinJsIrTargetConfigurator(kotlinPluginVersion: String) :
|
||||
return result
|
||||
}
|
||||
|
||||
override fun buildCompilationProcessor(compilation: KotlinJsCompilation): KotlinSourceSetProcessor<*> {
|
||||
override fun buildCompilationProcessor(compilation: KotlinJsIrCompilation): KotlinSourceSetProcessor<*> {
|
||||
val tasksProvider = KotlinTasksProvider(compilation.target.targetName)
|
||||
return KotlinJsIrSourceSetProcessor(compilation.target.project, tasksProvider, compilation, kotlinPluginVersion)
|
||||
}
|
||||
|
||||
+12
-7
@@ -6,8 +6,9 @@
|
||||
package org.jetbrains.kotlin.gradle.targets.js.ir
|
||||
|
||||
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.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.KotlinOnlyTarget
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinOnlyTargetPreset
|
||||
@@ -15,7 +16,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinOnlyTargetPreset
|
||||
open class KotlinJsIrTargetPreset(
|
||||
project: Project,
|
||||
kotlinPluginVersion: String
|
||||
) : KotlinOnlyTargetPreset<KotlinJsIrTarget, KotlinJsCompilation>(
|
||||
) : KotlinOnlyTargetPreset<KotlinJsIrTarget, KotlinJsIrCompilation>(
|
||||
project,
|
||||
kotlinPluginVersion
|
||||
) {
|
||||
@@ -26,12 +27,15 @@ open class KotlinJsIrTargetPreset(
|
||||
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 createCompilationFactory(forTarget: KotlinOnlyTarget<KotlinJsCompilation>) =
|
||||
KotlinJsCompilationFactory(project, forTarget)
|
||||
override fun createCompilationFactory(
|
||||
forTarget: KotlinOnlyTarget<KotlinJsIrCompilation>
|
||||
): KotlinCompilationFactory<KotlinJsIrCompilation> =
|
||||
KotlinJsIrCompilationFactory(project, forTarget)
|
||||
|
||||
companion object {
|
||||
const val PRESET_NAME = "jsIr"
|
||||
@@ -45,7 +49,8 @@ class KotlinJsIrSingleTargetPreset(
|
||||
KotlinJsIrTargetPreset(project, kotlinPluginVersion) {
|
||||
|
||||
// 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