From 2b27fe4e658842e328ef0cb26df59d82660a106b Mon Sep 17 00:00:00 2001 From: Yahor Berdnikau Date: Thu, 11 May 2023 21:43:42 +0200 Subject: [PATCH] [Gradle] Fix moduleName is not possible to set in MPP project ^KT-57959 Fixed --- .../kotlin/gradle/CompilerOptionsProjectIT.kt | 38 +++++++++++++++++++ .../configuration/KotlinCompileConfig.kt | 3 +- 2 files changed, 39 insertions(+), 2 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/CompilerOptionsProjectIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/CompilerOptionsProjectIT.kt index f2a2e4bd044..dc505e14dab 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/CompilerOptionsProjectIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/CompilerOptionsProjectIT.kt @@ -309,4 +309,42 @@ class CompilerOptionsProjectIT : KGPBaseTest() { } } } + + @DisplayName("KT-57959: should be possible to configure module name in MPP/android") + @GradleAndroidTest + @GradleTestVersions(minVersion = TestVersions.Gradle.G_7_0) + @AndroidTestVersions(minVersion = TestVersions.AGP.AGP_70) + @AndroidGradlePluginTests + fun mppAndroidModuleName( + gradleVersion: GradleVersion, + agpVersion: String, + jdk: JdkVersions.ProvidedJdk + ) { + project( + "multiplatformAndroidSourceSetLayout2", + gradleVersion, + buildOptions = defaultBuildOptions.copy(androidVersion = agpVersion, logLevel = LogLevel.DEBUG), + buildJdk = jdk.location + ) { + buildGradleKts.appendText( + //language=kotlin + """ + | + |kotlin { + | android { + | compilations.all { + | compilerOptions.options.moduleName.set("last-chance") + | } + | } + |} + """.trimMargin() + ) + + build(":compileGermanFreeDebugKotlinAndroid") { + assertTasksExecuted(":compileGermanFreeDebugKotlinAndroid") + + assertCompilerArgument(":compileGermanFreeDebugKotlinAndroid", "-module-name last-chance") + } + } + } } \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KotlinCompileConfig.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KotlinCompileConfig.kt index 85128a2e53b..5f6b4a7c09b 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KotlinCompileConfig.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KotlinCompileConfig.kt @@ -89,8 +89,7 @@ internal open class BaseKotlinCompileConfig : AbstractKotl // In case of 'org.jetbrains.kotlin.jvm' and 'org.jetbrains.kotlin.android' plugins module name will be pre-configured if (ext !is KotlinJvmProjectExtension && ext !is KotlinAndroidProjectExtension) { - @Suppress("DEPRECATION") - task.moduleName.set(providers.provider { compilationInfo.moduleName }) + task.compilerOptions.moduleName.convention(providers.provider { compilationInfo.moduleName }) } else { task.nagTaskModuleNameUsage.set(true) }