diff --git a/compiler/build-tools/kotlin-build-statistics/build.gradle.kts b/compiler/build-tools/kotlin-build-statistics/build.gradle.kts index 3e847162f20..03671936458 100644 --- a/compiler/build-tools/kotlin-build-statistics/build.gradle.kts +++ b/compiler/build-tools/kotlin-build-statistics/build.gradle.kts @@ -27,3 +27,7 @@ sourceSets { } projectTest(jUnitMode = JUnitMode.JUnit5, parallel = true) + +publish() + +standardPublicJars() \ No newline at end of file diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml index e4ee7c9f053..3d93e029aee 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -20,6 +20,7 @@ + @@ -30,6 +31,7 @@ + diff --git a/libraries/tools/kotlin-gradle-plugin/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin/build.gradle.kts index 2ad37a9c434..d11ad3509ab 100644 --- a/libraries/tools/kotlin-gradle-plugin/build.gradle.kts +++ b/libraries/tools/kotlin-gradle-plugin/build.gradle.kts @@ -1,6 +1,5 @@ import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar import com.github.jengelman.gradle.plugins.shadow.transformers.DontIncludeResourceTransformer -import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import org.jetbrains.kotlin.pill.PillExtension @@ -62,7 +61,7 @@ dependencies { } } - commonCompileOnly(project(":compiler:incremental-compilation-impl")) + commonCompileOnly(project(":compiler:cli")) commonCompileOnly(project(":daemon-common")) commonCompileOnly(project(":kotlin-daemon-client")) commonCompileOnly(project(":kotlin-gradle-compiler-types")) @@ -99,21 +98,23 @@ dependencies { } commonCompileOnly(project(":kotlin-tooling-metadata")) commonCompileOnly(project(":compiler:build-tools:kotlin-build-statistics")) - + commonCompileOnly(commonDependency("org.jetbrains.intellij.deps:asm-all")) { isTransitive = false } commonImplementation(project(":kotlin-gradle-plugin-idea")) commonImplementation(project(":kotlin-gradle-plugin-idea-proto")) - commonImplementation(project(":kotlin-util-klib")) commonImplementation(project(":native:kotlin-klib-commonizer-api")) commonImplementation(project(":compiler:build-tools:kotlin-build-tools-api")) + commonImplementation(project(":compiler:build-tools:kotlin-build-statistics")) - commonRuntimeOnly(project(":kotlin-compiler-embeddable")) commonRuntimeOnly(project(":kotlin-compiler-runner")) { // Excluding dependency with not-relocated 'com.intellij' types exclude(group = "org.jetbrains.kotlin", module = "kotlin-build-common") + exclude(group = "org.jetbrains.kotlin", module = "kotlin-compiler-embeddable") } commonRuntimeOnly(project(":kotlin-scripting-compiler-embeddable")) commonRuntimeOnly(project(":kotlin-scripting-compiler-impl-embeddable")) + commonRuntimeOnly(project(":kotlin-util-klib")) + commonRuntimeOnly(project(":prepare:kotlin-gradle-plugin-compiler-dependencies")) embedded(project(":kotlin-gradle-build-metrics")) embedded(project(":kotlin-gradle-statistics")) diff --git a/prepare/kotlin-gradle-plugin-compiler-dependencies/build.gradle.kts b/prepare/kotlin-gradle-plugin-compiler-dependencies/build.gradle.kts new file mode 100644 index 00000000000..d98de93217f --- /dev/null +++ b/prepare/kotlin-gradle-plugin-compiler-dependencies/build.gradle.kts @@ -0,0 +1,50 @@ +description = "Kotlin Compiler dependencies (used directly in KGP)" + +plugins { + `java` +} + +// avoid adding new dependencies here +val compilerModules = listOf( + ":compiler:cli", // for MessageRenderer, related to MessageCollector usage + ":compiler:cli-base", // for kotlinx-benchmark + ":compiler:cli-common", // for compiler arguments setup, for logging via MessageCollector, CompilerSystemProperties, ExitCode + ":compiler:config.jvm", // for K2JVMCompilerArguments initialization + ":compiler:config", // for kotlinx-benchmark + ":compiler:frontend", // for kotlinx-benchmark + ":compiler:ir.tree", // for PartialLinkageMode (K/N) + ":compiler:util", // for CommonCompilerArguments initialization, K/N + ":compiler:compiler.version", // for user projects buildscripts + ":core:compiler.common", // for kotlinx-benchmark + ":core:compiler.common.jvm", // for FUS statistics parsing all the compiler arguments, otherwise it fails silently + ":core:compiler.common.native", // for kotlinx-benchmark + ":core:descriptors", // for kotlinx-benchmark + ":core:deserialization.common", // for kotlinx-benchmark + ":core:deserialization", // for kotlinx-benchmark + ":core:metadata", // for kotlinx-benchmark + ":core:util.runtime", // for stdlib extensions + ":kotlin-build-common", // for incremental compilation setup + ":js:js.config", // for k/js task +) + +dependencies { + for (dependency in compilerModules) { + embedded(project(dependency)) { isTransitive = false } + } + embedded(intellijUtilRt()) { isTransitive = false } // for kapt (PathUtil.getJdkClassesRoots) + embedded(intellijPlatformUtil()) { isTransitive = false } // for kapt (JavaVersion), KotlinToolRunner (escapeStringCharacters) + embedded(intellijPlatformUtilBase()) { isTransitive = false } // for kapt (PathUtil.getJdkClassesRoots) + embedded(commonDependency("org.jetbrains.intellij.deps.fastutil:intellij-deps-fastutil")) { isTransitive = false } // for kapt (PathUtil.getJdkClassesRoots) + embedded(jpsModelImpl()) { isTransitive = false } // for kapt (PathUtil.getJdkClassesRoots) + embedded(protobufLite()) { isTransitive = false } // for kotlinx-benchmark + embedded(commonDependency("org.jetbrains.intellij.deps:trove4j")) { isTransitive = false } // for k/js task +} + +publish() + +runtimeJar(rewriteDefaultJarDepsToShadedCompiler()) + +sourcesJar { + dependsOn(":compiler:ir.tree:generateTree") +} +javadocJar() diff --git a/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/kotlin-build-statistics/kotlin-build-statistics.pom b/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/kotlin-build-statistics/kotlin-build-statistics.pom new file mode 100644 index 00000000000..3da641d9016 --- /dev/null +++ b/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/kotlin-build-statistics/kotlin-build-statistics.pom @@ -0,0 +1,42 @@ + + + 4.0.0 + org.jetbrains.kotlin + kotlin-build-statistics + ArtifactsTest.version + Kotlin Build Statistics + Kotlin Build Report Common + https://kotlinlang.org/ + + + The Apache License, Version 2.0 + http://www.apache.org/licenses/LICENSE-2.0.txt + + + + + Kotlin Team + JetBrains + https://www.jetbrains.com + + + + scm:git:https://github.com/JetBrains/kotlin.git + scm:git:https://github.com/JetBrains/kotlin.git + https://github.com/JetBrains/kotlin + + + + org.jetbrains.kotlin + kotlin-build-tools-api + ArtifactsTest.version + runtime + + + com.google.code.gson + gson + 2.8.9 + runtime + + + diff --git a/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/kotlin-gradle-plugin-compiler-dependencies/kotlin-gradle-plugin-compiler-dependencies.pom b/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/kotlin-gradle-plugin-compiler-dependencies/kotlin-gradle-plugin-compiler-dependencies.pom new file mode 100644 index 00000000000..64637e73854 --- /dev/null +++ b/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/kotlin-gradle-plugin-compiler-dependencies/kotlin-gradle-plugin-compiler-dependencies.pom @@ -0,0 +1,29 @@ + + + 4.0.0 + org.jetbrains.kotlin + kotlin-gradle-plugin-compiler-dependencies + ArtifactsTest.version + Kotlin Gradle Plugin Compiler Dependencies + Kotlin Compiler dependencies (used directly in KGP) + https://kotlinlang.org/ + + + The Apache License, Version 2.0 + http://www.apache.org/licenses/LICENSE-2.0.txt + + + + + Kotlin Team + JetBrains + https://www.jetbrains.com + + + + scm:git:https://github.com/JetBrains/kotlin.git + scm:git:https://github.com/JetBrains/kotlin.git + https://github.com/JetBrains/kotlin + + diff --git a/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/kotlin-gradle-plugin/kotlin-gradle-plugin.pom b/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/kotlin-gradle-plugin/kotlin-gradle-plugin.pom index 762a7f0fce5..91ba4620b87 100644 --- a/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/kotlin-gradle-plugin/kotlin-gradle-plugin.pom +++ b/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/kotlin-gradle-plugin/kotlin-gradle-plugin.pom @@ -170,38 +170,6 @@ - - org.jetbrains.kotlin - kotlin-util-klib - ArtifactsTest.version - runtime - - - kotlin-reflect - org.jetbrains.kotlin - - - kotlin-stdlib-jdk8 - org.jetbrains.kotlin - - - kotlin-stdlib-jdk7 - org.jetbrains.kotlin - - - kotlin-stdlib - org.jetbrains.kotlin - - - kotlin-script-runtime - org.jetbrains.kotlin - - - kotlin-stdlib-common - org.jetbrains.kotlin - - - org.jetbrains.kotlin kotlin-klib-commonizer-api @@ -268,7 +236,7 @@ org.jetbrains.kotlin - kotlin-compiler-embeddable + kotlin-build-statistics ArtifactsTest.version runtime @@ -304,6 +272,10 @@ ArtifactsTest.version runtime + + kotlin-compiler-embeddable + org.jetbrains.kotlin + kotlin-reflect org.jetbrains.kotlin @@ -398,5 +370,69 @@ + + org.jetbrains.kotlin + kotlin-util-klib + ArtifactsTest.version + runtime + + + kotlin-reflect + org.jetbrains.kotlin + + + kotlin-stdlib-jdk8 + org.jetbrains.kotlin + + + kotlin-stdlib-jdk7 + org.jetbrains.kotlin + + + kotlin-stdlib + org.jetbrains.kotlin + + + kotlin-script-runtime + org.jetbrains.kotlin + + + kotlin-stdlib-common + org.jetbrains.kotlin + + + + + org.jetbrains.kotlin + kotlin-gradle-plugin-compiler-dependencies + ArtifactsTest.version + runtime + + + kotlin-reflect + org.jetbrains.kotlin + + + kotlin-stdlib-jdk8 + org.jetbrains.kotlin + + + kotlin-stdlib-jdk7 + org.jetbrains.kotlin + + + kotlin-stdlib + org.jetbrains.kotlin + + + kotlin-script-runtime + org.jetbrains.kotlin + + + kotlin-stdlib-common + org.jetbrains.kotlin + + + diff --git a/repo/gradle-build-conventions/buildsrc-compat/src/main/kotlin/intellijDependencies.kt b/repo/gradle-build-conventions/buildsrc-compat/src/main/kotlin/intellijDependencies.kt index 75ad3ebd2c5..8a3812f70d1 100644 --- a/repo/gradle-build-conventions/buildsrc-compat/src/main/kotlin/intellijDependencies.kt +++ b/repo/gradle-build-conventions/buildsrc-compat/src/main/kotlin/intellijDependencies.kt @@ -21,6 +21,7 @@ fun Project.jpsBuild() = "com.jetbrains.intellij.platform:jps-build:$intellijVer fun Project.testFramework() = "com.jetbrains.intellij.platform:test-framework:$intellijVersion" fun Project.devKitJps() = "com.jetbrains.intellij.devkit:devkit-jps:$intellijVersion" fun Project.intellijPlatformUtil() = "com.jetbrains.intellij.platform:util:$intellijVersion" +fun Project.intellijPlatformUtilBase() = "com.jetbrains.intellij.platform:util-base:$intellijVersion" fun Project.intellijJavaRt() = "com.jetbrains.intellij.java:java-rt:$intellijVersion" fun Project.intellijAnalysis() = "com.jetbrains.intellij.platform:analysis:$intellijVersion" fun Project.intellijResources() = "com.jetbrains.intellij.platform:resources:$intellijVersion" diff --git a/repo/gradle-build-conventions/buildsrc-compat/src/main/kotlin/tasks.kt b/repo/gradle-build-conventions/buildsrc-compat/src/main/kotlin/tasks.kt index 88fc350ac41..25380f98094 100644 --- a/repo/gradle-build-conventions/buildsrc-compat/src/main/kotlin/tasks.kt +++ b/repo/gradle-build-conventions/buildsrc-compat/src/main/kotlin/tasks.kt @@ -81,6 +81,8 @@ val kotlinGradlePluginAndItsRequired = arrayOf( ":kotlin-test-js-runner", ":native:kotlin-klib-commonizer-embeddable", ":native:kotlin-klib-commonizer-api", + ":prepare:kotlin-gradle-plugin-compiler-dependencies", + ":compiler:build-tools:kotlin-build-statistics", ":compiler:build-tools:kotlin-build-tools-api", ":compiler:build-tools:kotlin-build-tools-impl", ) diff --git a/settings.gradle b/settings.gradle index fcb082705e6..90113e1fb85 100644 --- a/settings.gradle +++ b/settings.gradle @@ -268,7 +268,8 @@ include ":kotlin-imports-dumper-compiler-plugin", ":wasm:wasm.frontend", ":wasm:wasm.config", ":repo:codebase-tests", - ":repo:artifacts-tests" + ":repo:artifacts-tests", + ":prepare:kotlin-gradle-plugin-compiler-dependencies" include ":kotlin-atomicfu-compiler-plugin", ":kotlin-atomicfu-compiler-plugin-embeddable",