From d4f44e63cdf47e530055067a9823ce8acf6792c4 Mon Sep 17 00:00:00 2001 From: Sergey Igushkin Date: Sat, 28 Jul 2018 18:24:21 +0300 Subject: [PATCH] Create runtime software component usage only for runnables; Also make Kotlin2JsCompilation a compilation to runnable files --- .../gradle/plugin/mpp/kotlinCompilations.kt | 2 +- .../kotlin/gradle/plugin/mpp/kotlinTargets.kt | 19 +++++++++++++++---- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/kotlinCompilations.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/kotlinCompilations.kt index 4e27302b988..e97ee9e06dc 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/kotlinCompilations.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/kotlinCompilations.kt @@ -223,7 +223,7 @@ class KotlinJsCompilation( target: KotlinTarget, name: String, override val output: SourceSetOutput -) : AbstractKotlinCompilation(target, name) +) : AbstractKotlinCompilationToRunnableFiles(target, name) class KotlinCommonCompilation( target: KotlinTarget, diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/kotlinTargets.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/kotlinTargets.kt index 146369031e8..b2852503b79 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/kotlinTargets.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/kotlinTargets.kt @@ -11,6 +11,7 @@ import org.gradle.api.attributes.AttributeContainer import org.gradle.api.internal.component.UsageContext import org.gradle.api.plugins.JavaPlugin import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation +import org.jetbrains.kotlin.gradle.plugin.KotlinCompilationToRunnableFiles import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType import org.jetbrains.kotlin.gradle.plugin.KotlinTarget import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName @@ -36,10 +37,20 @@ abstract class AbstractKotlinTarget ( override fun toString(): String = "target $name ($platformType)" - override fun createUsageContexts(): Set = setOf( - KotlinPlatformUsageContext(project, this, KotlinSoftwareComponent.kotlinApiUsage(project), apiElementsConfigurationName), - KotlinPlatformUsageContext(project, this, KotlinSoftwareComponent.kotlinRuntimeUsage(project), runtimeElementsConfigurationName) - ) + override fun createUsageContexts(): Set = + setOf( + KotlinPlatformUsageContext( + project, this, KotlinSoftwareComponent.kotlinApiUsage(project), apiElementsConfigurationName + ) + ) + if (compilations.getByName(KotlinCompilation.MAIN_COMPILATION_NAME) is KotlinCompilationToRunnableFiles) + setOf( + KotlinPlatformUsageContext( + project, + this, + KotlinSoftwareComponent.kotlinRuntimeUsage(project), + runtimeElementsConfigurationName + ) + ) else emptyList() } internal fun KotlinTarget.disambiguateName(simpleName: String) =