From 5a1fb78fcd6ab5e513cb8322cbad07d9f241273e Mon Sep 17 00:00:00 2001 From: cristiangarcia Date: Sun, 24 Dec 2023 00:01:59 +0000 Subject: [PATCH] Declare generated SourceSets correctly Allow Gradle to keep the track of the task generating the sources KTI-1502 Fixed --- compiler/fir/checkers/build.gradle.kts | 21 ++++++------ compiler/fir/tree/build.gradle.kts | 14 +++----- compiler/ir/ir.tree/build.gradle.kts | 18 ++++------- .../kotlin/NativeInteropPlugin.groovy | 3 +- .../jvm-minimal-for-test/build.gradle.kts | 18 ++++------- .../tools/kotlin-stdlib-gen/build.gradle.kts | 32 ++++++++----------- native/swift/sir/build.gradle.kts | 16 ++++------ 7 files changed, 49 insertions(+), 73 deletions(-) diff --git a/compiler/fir/checkers/build.gradle.kts b/compiler/fir/checkers/build.gradle.kts index f6c753dea71..a5bce843e68 100644 --- a/compiler/fir/checkers/build.gradle.kts +++ b/compiler/fir/checkers/build.gradle.kts @@ -17,14 +17,6 @@ dependencies { compileOnly(intellijCore()) } -sourceSets { - "main" { - projectDefault() - generatedDir() - } - "test" { none() } -} - val generatorClasspath by configurations.creating dependencies { @@ -59,9 +51,16 @@ val generateCheckersComponents by tasks.registering(NoDebugJavaExec::class) { systemProperties["line.separator"] = "\n" } -val compileKotlin by tasks - -compileKotlin.dependsOn(generateCheckersComponents) +sourceSets { + "main" { + projectDefault() + java.srcDirs(generateCheckersComponents.map { + // This is required because that task is generating all the platforms too + generationRoot + }) + } + "test" { none() } +} if (kotlinBuildProperties.isInJpsBuildIdeaSync) { apply(plugin = "idea") diff --git a/compiler/fir/tree/build.gradle.kts b/compiler/fir/tree/build.gradle.kts index 3e165fa0a70..19e7e5fc006 100644 --- a/compiler/fir/tree/build.gradle.kts +++ b/compiler/fir/tree/build.gradle.kts @@ -18,13 +18,6 @@ dependencies { compileOnly(intellijCore()) } -sourceSets { - "main" { - projectDefault() - generatedDir() - } -} - val generatorClasspath by configurations.creating dependencies { @@ -51,8 +44,11 @@ val generateTree by tasks.registering(NoDebugJavaExec::class) { systemProperties["line.separator"] = "\n" } -tasks.named("compileKotlin") { - dependsOn(generateTree) +sourceSets { + "main" { + projectDefault() + java.srcDir(generateTree) + } } if (kotlinBuildProperties.isInJpsBuildIdeaSync) { diff --git a/compiler/ir/ir.tree/build.gradle.kts b/compiler/ir/ir.tree/build.gradle.kts index 20bfee2619a..f8b9e0eb307 100644 --- a/compiler/ir/ir.tree/build.gradle.kts +++ b/compiler/ir/ir.tree/build.gradle.kts @@ -20,14 +20,6 @@ dependencies { optInToUnsafeDuringIrConstructionAPI() -sourceSets { - "main" { - projectDefault() - generatedDir() - } - "test" {} -} - val generatorClasspath by configurations.creating dependencies { @@ -54,9 +46,13 @@ val generateTree by tasks.registering(NoDebugJavaExec::class) { systemProperties["line.separator"] = "\n" } -val compileKotlin by tasks - -compileKotlin.dependsOn(generateTree) +sourceSets { + "main" { + projectDefault() + java.srcDirs(generateTree) + } + "test" {} +} tasks.withType> { kotlinOptions { diff --git a/kotlin-native/build-tools/src/main/groovy/org/jetbrains/kotlin/NativeInteropPlugin.groovy b/kotlin-native/build-tools/src/main/groovy/org/jetbrains/kotlin/NativeInteropPlugin.groovy index 11ae84b6e34..d742adbdc4a 100644 --- a/kotlin-native/build-tools/src/main/groovy/org/jetbrains/kotlin/NativeInteropPlugin.groovy +++ b/kotlin-native/build-tools/src/main/groovy/org/jetbrains/kotlin/NativeInteropPlugin.groovy @@ -188,11 +188,10 @@ class NamedNativeInteropConfig implements Named { interopStubs = project.sourceSets.create(interopStubsName) configuration = project.configurations.create(interopStubs.name) project.tasks.getByName(interopStubs.getTaskName("compile", "Kotlin")) { - dependsOn genTask kotlinOptions.freeCompilerArgs = ["-Xskip-prerelease-check"] } - interopStubs.kotlin.srcDirs generatedSrcDir + interopStubs.kotlin.srcDir(project.tasks.named(genTask.name).map { generatedSrcDir }) project.dependencies { add interopStubs.getApiConfigurationName(), project(path: ':kotlin-native:Interop:Runtime') diff --git a/libraries/stdlib/jvm-minimal-for-test/build.gradle.kts b/libraries/stdlib/jvm-minimal-for-test/build.gradle.kts index 729813582f5..b011e73b3c2 100644 --- a/libraries/stdlib/jvm-minimal-for-test/build.gradle.kts +++ b/libraries/stdlib/jvm-minimal-for-test/build.gradle.kts @@ -1,5 +1,3 @@ -import org.jetbrains.kotlin.gradle.tasks.KotlinCompile - description = "Kotlin Mock Runtime for Tests" plugins { @@ -22,15 +20,6 @@ dependencies { builtins(project(":core:builtins")) } -sourceSets { - "main" { - java.apply { - srcDir(layout.buildDirectory.dir("src")) - } - } - "test" {} -} - val copySources by task { val stdlibProjectDir = file("$rootDir/libraries/stdlib/jvm") @@ -53,7 +42,12 @@ val copySources by task { into(layout.buildDirectory.dir("src")) } - +sourceSets { + "main" { + java.srcDir(copySources) + } + "test" {} +} tasks.compileKotlin { dependsOn(copySources) diff --git a/libraries/tools/kotlin-stdlib-gen/build.gradle.kts b/libraries/tools/kotlin-stdlib-gen/build.gradle.kts index e60c597b69d..ebcf322e326 100644 --- a/libraries/tools/kotlin-stdlib-gen/build.gradle.kts +++ b/libraries/tools/kotlin-stdlib-gen/build.gradle.kts @@ -4,18 +4,17 @@ plugins { val copyrightDirectory = project.layout.buildDirectory.dir("copyright") -sourceSets { - "main" { - kotlin.srcDir("src") - resources.srcDir(copyrightDirectory) - } -} - dependencies { api("org.jetbrains.kotlin:kotlin-stdlib:$bootstrapKotlinVersion") api("org.jetbrains.kotlin:kotlin-reflect:$bootstrapKotlinVersion") } +val copyCopyrightProfile by tasks.registering(Copy::class) { + from("$rootDir/.idea/copyright") + into(copyrightDirectory) + include("apache.xml") +} + tasks { compileKotlin { compilerOptions { @@ -23,16 +22,6 @@ tasks { } } - val copyCopyrightProfile by registering(Copy::class) { - from("$rootDir/.idea/copyright") - into(copyrightDirectory) - include("apache.xml") - } - - processResources { - dependsOn(copyCopyrightProfile) - } - register("run") { group = "application" mainClass = "generators.GenerateStandardLibKt" @@ -55,4 +44,11 @@ tasks { classpath = sourceSets.main.get().runtimeClasspath args = listOf("$rootDir") } -} \ No newline at end of file +} + +sourceSets { + "main" { + kotlin.srcDir("src") + resources.srcDir(copyCopyrightProfile) + } +} diff --git a/native/swift/sir/build.gradle.kts b/native/swift/sir/build.gradle.kts index 4d3362b4ffc..7630721a044 100644 --- a/native/swift/sir/build.gradle.kts +++ b/native/swift/sir/build.gradle.kts @@ -19,14 +19,6 @@ dependencies { testRuntimeOnly(libs.junit.jupiter.engine) } -sourceSets { - "main" { - projectDefault() - generatedDir() - } - "test" { projectDefault() } -} - testsJar() projectTest(jUnitMode = JUnitMode.JUnit5) { @@ -60,8 +52,12 @@ val generateTree by tasks.registering(NoDebugJavaExec::class) { systemProperties["line.separator"] = "\n" } -tasks.named("compileKotlin") { - dependsOn(generateTree) +sourceSets { + "main" { + projectDefault() + java.srcDir(generateTree) + } + "test" { projectDefault() } } if (kotlinBuildProperties.isInJpsBuildIdeaSync) {