diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinTargetConfigurator.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinTargetConfigurator.kt index 3f38a3be5ce..77bd397b0df 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinTargetConfigurator.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinTargetConfigurator.kt @@ -31,6 +31,8 @@ import org.jetbrains.kotlin.gradle.plugin.JsCompilerType import org.jetbrains.kotlin.gradle.plugin.mpp.* import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTarget +import org.jetbrains.kotlin.gradle.utils.COMPILE +import org.jetbrains.kotlin.gradle.utils.RUNTIME import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName import java.util.concurrent.Callable import kotlin.reflect.KMutableProperty1 @@ -325,10 +327,10 @@ abstract class AbstractKotlinTargetConfigurator } internal val KotlinCompilation<*>.deprecatedCompileConfigurationName: String - get() = disambiguateName("compile") + get() = disambiguateName(COMPILE) internal val KotlinCompilationToRunnableFiles<*>.deprecatedRuntimeConfigurationName: String - get() = disambiguateName("runtime") + get() = disambiguateName(RUNTIME) internal val KotlinTarget.testTaskName: String get() = lowerCamelCaseName(targetName, AbstractKotlinTargetConfigurator.testTaskNameSuffix) 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 fa401cd7940..73cd33dace0 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 @@ -1,7 +1,7 @@ - /* - * 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. - */ +/* +* 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.plugin.mpp @@ -29,6 +29,7 @@ import org.jetbrains.kotlin.gradle.utils.addExtendsFromRelation import org.jetbrains.kotlin.gradle.utils.archivePathCompatible import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName import java.io.File +import org.jetbrains.kotlin.gradle.utils.* import java.util.* import java.util.concurrent.Callable @@ -182,16 +183,16 @@ abstract class AbstractKotlinCompilation( override lateinit var compileDependencyFiles: FileCollection override val apiConfigurationName: String - get() = disambiguateName("api") + get() = disambiguateName(API) override val implementationConfigurationName: String - get() = disambiguateName("implementation") + get() = disambiguateName(IMPLEMENTATION) override val compileOnlyConfigurationName: String - get() = disambiguateName("compileOnly") + get() = disambiguateName(COMPILE_ONLY) override val runtimeOnlyConfigurationName: String - get() = disambiguateName("runtimeOnly") + get() = disambiguateName(RUNTIME_ONLY) override fun dependencies(configure: KotlinDependencyHandler.() -> Unit): Unit = DefaultKotlinDependencyHandler(this, target.project).run(configure) @@ -255,24 +256,24 @@ abstract class AbstractKotlinCompilation( get() = Collections.unmodifiableList(_associateWith.toList()) } - internal val KotlinCompilation<*>.ownModuleName: String - get() { - val project = target.project - val baseName = project.convention.findPlugin(BasePluginConvention::class.java)?.archivesBaseName - ?: project.name - val suffix = if (compilationName == KotlinCompilation.MAIN_COMPILATION_NAME) "" else "_$compilationName" - return filterModuleName("$baseName$suffix") - } +internal val KotlinCompilation<*>.ownModuleName: String + get() { + val project = target.project + val baseName = project.convention.findPlugin(BasePluginConvention::class.java)?.archivesBaseName + ?: project.name + val suffix = if (compilationName == KotlinCompilation.MAIN_COMPILATION_NAME) "" else "_$compilationName" + return filterModuleName("$baseName$suffix") + } - internal val KotlinCompilation<*>.associateWithTransitiveClosure: Iterable> - get() = mutableSetOf>().apply { - fun visit(other: KotlinCompilation<*>) { - if (add(other)) { - other.associateWith.forEach(::visit) - } - } - associateWith.forEach(::visit) - } +internal val KotlinCompilation<*>.associateWithTransitiveClosure: Iterable> + get() = mutableSetOf>().apply { + fun visit(other: KotlinCompilation<*>) { + if (add(other)) { + other.associateWith.forEach(::visit) + } + } + associateWith.forEach(::visit) + } abstract class AbstractKotlinCompilationToRunnableFiles( target: KotlinTarget, @@ -296,7 +297,7 @@ internal fun KotlinCompilation<*>.disambiguateName(simpleName: String): String { ) } - private typealias CompilationsBySourceSet = Map>> +private typealias CompilationsBySourceSet = Map>> internal object CompilationSourceSetUtil { private const val EXT_NAME = "kotlin.compilations.bySourceSets" diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/DefaultKotlinSourceSet.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/DefaultKotlinSourceSet.kt index 2d5a82e7623..5bd8ad28c74 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/DefaultKotlinSourceSet.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/DefaultKotlinSourceSet.kt @@ -16,11 +16,11 @@ import org.jetbrains.kotlin.build.DEFAULT_KOTLIN_SOURCE_FILES_EXTENSIONS import org.jetbrains.kotlin.gradle.plugin.KotlinDependencyHandler import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet import org.jetbrains.kotlin.gradle.plugin.LanguageSettingsBuilder -import org.jetbrains.kotlin.gradle.plugin.mpp.* +import org.jetbrains.kotlin.gradle.plugin.mpp.DefaultKotlinDependencyHandler import org.jetbrains.kotlin.gradle.plugin.mpp.GranularMetadataTransformation +import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinProjectStructureMetadata import org.jetbrains.kotlin.gradle.plugin.mpp.MetadataDependencyResolution -import org.jetbrains.kotlin.gradle.utils.isGradleVersionAtLeast -import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName +import org.jetbrains.kotlin.gradle.utils.* import java.io.File import java.lang.reflect.Constructor import java.util.* @@ -34,16 +34,16 @@ class DefaultKotlinSourceSet( ) : KotlinSourceSet { override val apiConfigurationName: String - get() = disambiguateName("api") + get() = disambiguateName(API) override val implementationConfigurationName: String - get() = disambiguateName("implementation") + get() = disambiguateName(IMPLEMENTATION) override val compileOnlyConfigurationName: String - get() = disambiguateName("compileOnly") + get() = disambiguateName(COMPILE_ONLY) override val runtimeOnlyConfigurationName: String - get() = disambiguateName("runtimeOnly") + get() = disambiguateName(RUNTIME_ONLY) override val apiMetadataConfigurationName: String get() = lowerCamelCaseName(apiConfigurationName, METADATA_CONFIGURATION_NAME_SUFFIX) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/KotlinDependencyScope.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/KotlinDependencyScope.kt index 406c34054a0..c7dac47f0aa 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/KotlinDependencyScope.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/KotlinDependencyScope.kt @@ -9,12 +9,16 @@ import org.gradle.api.Project import org.gradle.api.artifacts.Configuration import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet import org.jetbrains.kotlin.gradle.plugin.sources.KotlinDependencyScope.* +import org.jetbrains.kotlin.gradle.utils.API +import org.jetbrains.kotlin.gradle.utils.COMPILE_ONLY +import org.jetbrains.kotlin.gradle.utils.IMPLEMENTATION +import org.jetbrains.kotlin.gradle.utils.RUNTIME_ONLY internal enum class KotlinDependencyScope(val scopeName: String) { - API_SCOPE("api"), - IMPLEMENTATION_SCOPE("implementation"), - COMPILE_ONLY_SCOPE("compileOnly"), - RUNTIME_ONLY_SCOPE("runtimeOnly") + API_SCOPE(API), + IMPLEMENTATION_SCOPE(IMPLEMENTATION), + COMPILE_ONLY_SCOPE(COMPILE_ONLY), + RUNTIME_ONLY_SCOPE(RUNTIME_ONLY) } internal fun Project.sourceSetDependencyConfigurationByScope(sourceSet: KotlinSourceSet, scope: KotlinDependencyScope): Configuration = diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/KotlinBuildStatsService.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/KotlinBuildStatsService.kt index 9bcf4f0b2f5..e658c72c55e 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/KotlinBuildStatsService.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/KotlinBuildStatsService.kt @@ -13,9 +13,16 @@ import org.gradle.api.invocation.Gradle import org.gradle.api.logging.Logging import org.gradle.initialization.BuildRequestMetaData import org.gradle.invocation.DefaultGradle +import org.jetbrains.kotlin.gradle.utils.API +import org.jetbrains.kotlin.gradle.utils.COMPILE +import org.jetbrains.kotlin.gradle.utils.IMPLEMENTATION +import org.jetbrains.kotlin.gradle.utils.RUNTIME import org.jetbrains.kotlin.statistics.BuildSessionLogger import org.jetbrains.kotlin.statistics.BuildSessionLogger.Companion.STATISTICS_FOLDER_NAME -import org.jetbrains.kotlin.statistics.metrics.* +import org.jetbrains.kotlin.statistics.metrics.BooleanMetrics +import org.jetbrains.kotlin.statistics.metrics.IStatisticsValuesConsumer +import org.jetbrains.kotlin.statistics.metrics.NumericalMetrics +import org.jetbrains.kotlin.statistics.metrics.StringMetrics import java.io.File import java.lang.management.ManagementFactory import javax.management.MBeanServer @@ -219,7 +226,8 @@ internal class DefaultKotlinBuildStatsService internal constructor( StringMetrics.KOTLIN_REFLECT_VERSION, dependency.version ?: "0.0.0" ) - dependency.group == "org.jetbrains.kotlinx" && dependency.name.startsWith("kotlinx-serialization-runtime") -> sessionLogger.report( + dependency.group == "org.jetbrains.kotlinx" && dependency.name + .startsWith("kotlinx-serialization-runtime") -> sessionLogger.report( StringMetrics.KOTLIN_SERIALIZATION_VERSION, dependency.version ?: "0.0.0" ) @@ -269,19 +277,19 @@ internal class DefaultKotlinBuildStatsService internal constructor( } } } - "api" -> { + API -> { sessionLogger.report(NumericalMetrics.CONFIGURATION_API_COUNT, 1) reportLibrariesVersions(dependencies) } - "implementation" -> { + IMPLEMENTATION -> { sessionLogger.report(NumericalMetrics.CONFIGURATION_IMPLEMENTATION_COUNT, 1) reportLibrariesVersions(dependencies) } - "compile" -> { + COMPILE -> { sessionLogger.report(NumericalMetrics.CONFIGURATION_COMPILE_COUNT, 1) reportLibrariesVersions(dependencies) } - "runtime" -> { + RUNTIME -> { sessionLogger.report(NumericalMetrics.CONFIGURATION_RUNTIME_COUNT, 1) reportLibrariesVersions(dependencies) } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsCompilation.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsCompilation.kt index b8baf32487d..8f20da521ba 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsCompilation.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsCompilation.kt @@ -15,7 +15,7 @@ import org.jetbrains.kotlin.gradle.plugin.KotlinTarget import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget import org.jetbrains.kotlin.gradle.targets.js.npm.PackageJson import org.jetbrains.kotlin.gradle.tasks.Kotlin2JsCompile -import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName +import org.jetbrains.kotlin.gradle.utils.* open class KotlinJsCompilation( target: KotlinTarget, @@ -35,16 +35,16 @@ open class KotlinJsCompilation( } override val apiConfigurationName: String - get() = disambiguateNameInPlatform("api") + get() = disambiguateNameInPlatform(API) override val implementationConfigurationName: String - get() = disambiguateNameInPlatform("implementation") + get() = disambiguateNameInPlatform(IMPLEMENTATION) override val compileOnlyConfigurationName: String - get() = disambiguateNameInPlatform("compileOnly") + get() = disambiguateNameInPlatform(COMPILE_ONLY) override val runtimeOnlyConfigurationName: String - get() = disambiguateNameInPlatform("runtimeOnly") + get() = disambiguateNameInPlatform(RUNTIME_ONLY) protected open val disambiguationClassifierInPlatform: String? get() = (target as KotlinJsTarget).disambiguationClassifierInPlatform diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/utils/configurations.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/utils/configurations.kt new file mode 100644 index 00000000000..9fd61878247 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/utils/configurations.kt @@ -0,0 +1,13 @@ +/* + * Copyright 2010-2020 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.utils + +const val COMPILE_ONLY = "compileOnly" +const val COMPILE = "compile" +const val IMPLEMENTATION = "implementation" +const val API = "api" +const val RUNTIME_ONLY = "runtimeOnly" +const val RUNTIME = "runtime" \ No newline at end of file