From ad321e45dc2b543f8e15083a062bbc46511f9081 Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Thu, 26 Dec 2019 15:40:09 +0300 Subject: [PATCH] [Gradle, JS] Create KotlinJsIrCompilationFactory --- .../targets/js/ir/KotlinJsIrCompilation.kt | 8 +++---- .../js/ir/KotlinJsIrCompilationFactory.kt | 22 +++++++++++++++++++ .../gradle/targets/js/ir/KotlinJsIrTarget.kt | 2 +- .../js/ir/KotlinJsIrTargetConfigurator.kt | 4 ++-- .../targets/js/ir/KotlinJsIrTargetPreset.kt | 19 ++++++++++------ 5 files changed, 41 insertions(+), 14 deletions(-) create mode 100644 libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrCompilationFactory.kt diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrCompilation.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrCompilation.kt index 528df790935..b6d61c99fcd 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrCompilation.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrCompilation.kt @@ -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) } \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrCompilationFactory.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrCompilationFactory.kt new file mode 100644 index 00000000000..baac47ed632 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrCompilationFactory.kt @@ -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 +) : KotlinCompilationFactory { + override val itemClass: Class + get() = KotlinJsIrCompilation::class.java + + override fun create(name: String): KotlinJsIrCompilation = + KotlinJsIrCompilation(target, name) +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTarget.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTarget.kt index 88cbe5cfcf4..1065a02fc75 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTarget.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTarget.kt @@ -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(project, platformType), + KotlinOnlyTarget(project, platformType), KotlinTargetWithTests, KotlinJsIrTargetDsl { override lateinit var testRuns: NamedDomainObjectContainer diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTargetConfigurator.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTargetConfigurator.kt index 596792195cf..e63a3031947 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTargetConfigurator.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTargetConfigurator.kt @@ -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(true, true, kotlinPluginVersion), + KotlinOnlyTargetConfigurator(true, true, kotlinPluginVersion), KotlinTargetWithTestsConfigurator { override val testRunClass: Class 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) } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTargetPreset.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTargetPreset.kt index e89e83a50d5..3f15e900215 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTargetPreset.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTargetPreset.kt @@ -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( +) : KotlinOnlyTargetPreset( 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 = + KotlinJsIrTargetConfigurator(kotlinPluginVersion) override fun getName(): String = PRESET_NAME - override fun createCompilationFactory(forTarget: KotlinOnlyTarget) = - KotlinJsCompilationFactory(project, forTarget) + override fun createCompilationFactory( + forTarget: KotlinOnlyTarget + ): KotlinCompilationFactory = + 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): String? = null + override fun provideTargetDisambiguationClassifier(target: KotlinOnlyTarget): String? = null - override fun createKotlinTargetConfigurator() = KotlinJsIrTargetConfigurator(kotlinPluginVersion) + override fun createKotlinTargetConfigurator(): KotlinOnlyTargetConfigurator = + KotlinJsIrTargetConfigurator(kotlinPluginVersion) } \ No newline at end of file