Create runtime software component usage only for runnables;

Also make Kotlin2JsCompilation a compilation to runnable files
This commit is contained in:
Sergey Igushkin
2018-07-28 18:24:21 +03:00
parent 209d0cf6a1
commit d4f44e63cd
2 changed files with 16 additions and 5 deletions
@@ -223,7 +223,7 @@ class KotlinJsCompilation(
target: KotlinTarget,
name: String,
override val output: SourceSetOutput
) : AbstractKotlinCompilation(target, name)
) : AbstractKotlinCompilationToRunnableFiles(target, name)
class KotlinCommonCompilation(
target: KotlinTarget,
@@ -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<UsageContext> = setOf(
KotlinPlatformUsageContext(project, this, KotlinSoftwareComponent.kotlinApiUsage(project), apiElementsConfigurationName),
KotlinPlatformUsageContext(project, this, KotlinSoftwareComponent.kotlinRuntimeUsage(project), runtimeElementsConfigurationName)
)
override fun createUsageContexts(): Set<UsageContext> =
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) =