diff --git a/gradle-conventions/build.gradle.kts b/gradle-conventions/build.gradle.kts index 049e30536..fce7debd1 100644 --- a/gradle-conventions/build.gradle.kts +++ b/gradle-conventions/build.gradle.kts @@ -1,5 +1,5 @@ /* - * Copyright 2023-2024 JetBrains s.r.o and contributors. Use of this source code is governed by the Apache 2.0 license. + * Copyright 2023-2025 JetBrains s.r.o and contributors. Use of this source code is governed by the Apache 2.0 license. */ plugins { diff --git a/gradle-conventions/src/main/kotlin/conventions-kotlin-version.gradle.kts b/gradle-conventions/src/main/kotlin/conventions-kotlin-version.gradle.kts index 156f1a790..5994aa8e4 100644 --- a/gradle-conventions/src/main/kotlin/conventions-kotlin-version.gradle.kts +++ b/gradle-conventions/src/main/kotlin/conventions-kotlin-version.gradle.kts @@ -32,25 +32,11 @@ fun KotlinCommonCompilerOptions.setProjectLanguageVersion() { withKotlinJvmExtension { optInForRpcApi() - target.compilations - .filter { it.isMain } - .forEach { compilation -> - compilation.compileJavaTaskProvider.configure { - compilerOptions.setProjectLanguageVersion() - } - } + compilerOptions.setProjectLanguageVersion() } withKotlinKmpExtension { optInForRpcApi() - targets.flatMap { it.compilations } - .filter { it.isMain } - .forEach { compilation -> - compilation.compileTaskProvider.configure { - compilerOptions.setProjectLanguageVersion() - } - } + compilerOptions.setProjectLanguageVersion() } - -val KotlinCompilation<*>.isMain get() = name.lowercase().contains("main") diff --git a/gradle-conventions/src/main/kotlin/conventions-publishing.gradle.kts b/gradle-conventions/src/main/kotlin/conventions-publishing.gradle.kts index 87de8fece..900762738 100644 --- a/gradle-conventions/src/main/kotlin/conventions-publishing.gradle.kts +++ b/gradle-conventions/src/main/kotlin/conventions-publishing.gradle.kts @@ -4,6 +4,7 @@ import org.gradle.kotlin.dsl.registering import util.* +import util.other.capitalized import util.other.getSensitiveProperty import util.other.isPublicModule import util.tasks.ValidatePublishedArtifactsTask @@ -21,7 +22,23 @@ if (isPublicModule) { apply(plugin = "signing") } - the().configurePublication() + the().apply { + configurePublication() + + project.withKotlinKmpExtension { + // Remove then first Jvm Only public module is created + val publishMavenPublication = "publishMavenPublication" + repositories.all { + val publishTaskName = "${publishMavenPublication}To${name.capitalized()}Repository" + if (tasks.findByName(publishTaskName) == null) { + tasks.register(publishTaskName) { + group = PublishingPlugin.PUBLISH_TASK_GROUP + } + } + } + } + } + logger.info("Configured ${project.name} for publication") } else { logger.info("Skipping ${project.name} publication configuration, not a public module") diff --git a/gradle-conventions/src/main/kotlin/conventions-root.gradle.kts b/gradle-conventions/src/main/kotlin/conventions-root.gradle.kts index 8137696dd..1aa408526 100644 --- a/gradle-conventions/src/main/kotlin/conventions-root.gradle.kts +++ b/gradle-conventions/src/main/kotlin/conventions-root.gradle.kts @@ -2,6 +2,7 @@ * Copyright 2023-2025 JetBrains s.r.o and contributors. Use of this source code is governed by the Apache 2.0 license. */ +import util.other.capitalized import util.other.isPublicModule import util.other.libs import util.other.maybeNamed @@ -34,13 +35,6 @@ tasks.register(ValidatePublishedArtifactsTask.NA dependsOn(subprojects.filter { it.isPublicModule }) } -// Remove then first Jvm Only public module is created -val publishMavenPublicationToBuildRepoRepository = "publishMavenPublicationToBuildRepoRepository" -tasks.maybeNamed(publishMavenPublicationToBuildRepoRepository) - ?: tasks.register(publishMavenPublicationToBuildRepoRepository) { - group = PublishingPlugin.PUBLISH_TASK_GROUP - } - dokka { val libVersion = libs.versions.kotlinx.rpc.get() diff --git a/gradle-plugin/build.gradle.kts b/gradle-plugin/build.gradle.kts index c5be104da..8a5c44fae 100644 --- a/gradle-plugin/build.gradle.kts +++ b/gradle-plugin/build.gradle.kts @@ -2,6 +2,11 @@ * Copyright 2023-2025 JetBrains s.r.o and contributors. Use of this source code is governed by the Apache 2.0 license. */ +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile + +/* + * Copyright 2023-2025 JetBrains s.r.o and contributors. Use of this source code is governed by the Apache 2.0 license. + */ plugins { `kotlin-dsl` @@ -18,6 +23,13 @@ kotlin { explicitApi() } +tasks.withType().configureEach { + compilerOptions { + apiVersion = org.jetbrains.kotlin.gradle.dsl.KotlinVersion.KOTLIN_2_0 + languageVersion = org.jetbrains.kotlin.gradle.dsl.KotlinVersion.KOTLIN_2_0 + } +} + dependencies { compileOnly(libs.kotlin.gradle.plugin) }