From 0ac701d8bfb2b3962e980c149af912ff0b2d37f7 Mon Sep 17 00:00:00 2001 From: Ilya Matveev Date: Fri, 7 Sep 2018 15:02:41 +0700 Subject: [PATCH] Provide getters for names of native link tasks --- .../kotlin/gradle/NewMultiplatformIT.kt | 8 +++--- .../gradle/plugin/KotlinTargetConfigurator.kt | 17 ++---------- .../gradle/plugin/mpp/kotlinCompilations.kt | 27 ++++++++++++++----- 3 files changed, 26 insertions(+), 26 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt index c6df15bed11..a9fb5475f07 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt @@ -482,10 +482,10 @@ class NewMultiplatformIT : BaseGradleIT() { val taskSuffix = nativeHostTargetName.capitalize() val linkTasks = listOf( - ":linkMainDebugShared$taskSuffix", - ":linkMainReleaseShared$taskSuffix", - ":linkMainDebugStatic$taskSuffix", - ":linkMainReleaseStatic$taskSuffix" + ":linkDebugShared$taskSuffix", + ":linkReleaseShared$taskSuffix", + ":linkDebugStatic$taskSuffix", + ":linkReleaseStatic$taskSuffix" ) build("assemble") { 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 f2f1fe7c4e5..270a0739aaa 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 @@ -146,7 +146,7 @@ abstract class AbstractKotlinTargetConfigurator project.tasks.create(compilation.compileAllTaskName).apply { group = LifecycleBasePlugin.BUILD_GROUP - description = "Assembles " + compilation.output + "" + description = "Assembles outputs for compilation '${compilation.name}' of target '${compilation.target.name}'" dependsOn( compilation.output.dirs, compilation.compileKotlinTaskName @@ -387,13 +387,6 @@ open class KotlinNativeTargetConfigurator( private val Collection<*>.isDimensionVisible: Boolean get() = size > 1 - private fun createDimensionSuffix(dimensionName: String, multivalueProperty: Collection<*>): String = - if (multivalueProperty.isDimensionVisible) { - dimensionName.toLowerCase().capitalize() - } else { - "" - } - private val KotlinNativeCompilation.isMainCompilation: Boolean get() = name == KotlinCompilation.MAIN_COMPILATION_NAME @@ -496,14 +489,8 @@ open class KotlinNativeTargetConfigurator( for (kind in availableOutputKinds) { val compilerOutputKind = kind.compilerOutputKind - val compilationSuffix = compilation.name - val buildTypeSuffix = createDimensionSuffix(buildType.name, buildTypes) - val targetSuffix = compilation.target.name - val kindSuffix = kind.taskNameClassifier - val taskName = lowerCamelCaseName("link", compilationSuffix, buildTypeSuffix, kindSuffix, targetSuffix) - val linkTask = project.tasks.create( - taskName, + compilation.linkTaskName(kind, buildType), KotlinNativeCompile::class.java ).apply { this.compilation = compilation 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 11e1a8203d2..990177109f2 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 @@ -275,13 +275,6 @@ class KotlinNativeCompilation( // TODO: Move into the compilation task when the linking task does klib linking instead of compilation. internal var allSources: FileCollection = target.project.files() - val linkAllTaskName: String - get() = lowerCamelCaseName( - "link", - compilationName.takeIf { it != "main" }.orEmpty(), - target.disambiguationClassifier - ) - var isTestCompilation = false var friendCompilationName: String? = null @@ -350,6 +343,26 @@ class KotlinNativeCompilation( getBinary(NativeOutputKind.valueOf(kind.toUpperCase()), NativeBuildType.valueOf(buildType.toUpperCase())) // Naming + + val linkAllTaskName: String + get() = lowerCamelCaseName( + "link", + compilationName.takeIf { it != "main" }.orEmpty(), + target.disambiguationClassifier + ) + + fun linkTaskName(kind: NativeOutputKind, buildType: NativeBuildType): String = + lowerCamelCaseName( + "link", + compilationName.takeIf { it != KotlinCompilation.MAIN_COMPILATION_NAME }.orEmpty(), + buildType.name.toLowerCase(), + kind.taskNameClassifier, + target.disambiguationClassifier + ) + + fun linkTaskName(kind: String, buildType: String) = + linkTaskName(NativeOutputKind.valueOf(kind.toUpperCase()), NativeBuildType.valueOf(buildType.toUpperCase())) + override val compileDependencyConfigurationName: String get() = lowerCamelCaseName( target.disambiguationClassifier,