[Build] Migrate most of the build logic from Project.buildDir usage
It's going to be deprecated in Gradle 8.3 There's currently no way to pass a `org.gradle.api.provider.Provider` to the JavaExec.systemProperty or Test.systemProperty. There's a workaround using `org.gradle.process.CommandLineArgumentProvider`, but I intentionally don't rework these calls as Gradle is going to allow passing providers to configure system properties: https://github.com/gradle/gradle/issues/12247#issuecomment-1568427242 ^KTI-1473 In Progress
This commit is contained in:
committed by
Space Team
parent
b784544f8d
commit
a19bd2ed2e
@@ -13,17 +13,17 @@ val commonMainSources by task<Sync> {
|
||||
"$rootDir/libraries/kotlin.test/common/src/main/kotlin",
|
||||
"$rootDir/libraries/kotlin.test/annotations-common/src/main/kotlin"
|
||||
)
|
||||
into("$buildDir/commonMainSources")
|
||||
into(layout.buildDirectory.dir("commonMainSources"))
|
||||
}
|
||||
|
||||
val commonTestSources by task<Sync> {
|
||||
from("$rootDir/libraries/kotlin.test/common/src/test/kotlin")
|
||||
into("$buildDir/commonTestSources")
|
||||
into(layout.buildDirectory.dir("commonTestSources"))
|
||||
}
|
||||
|
||||
val jsMainSources by task<Sync> {
|
||||
from("$rootDir/libraries/kotlin.test/js/src/main/kotlin")
|
||||
into("$buildDir/jsMainSources")
|
||||
into(layout.buildDirectory.dir("jsMainSources"))
|
||||
}
|
||||
|
||||
kotlin {
|
||||
|
||||
@@ -19,12 +19,12 @@ node {
|
||||
|
||||
val jsMainSources by task<Sync> {
|
||||
from("$rootDir/libraries/kotlin.test/js/it/src")
|
||||
into("$buildDir/jsMainSources")
|
||||
into(layout.buildDirectory.dir("jsMainSources"))
|
||||
}
|
||||
|
||||
val jsSources by task<Sync> {
|
||||
from("$rootDir/libraries/kotlin.test/js/it/js")
|
||||
into("$buildDir/jsSources")
|
||||
into(layout.buildDirectory.dir("jsSources"))
|
||||
}
|
||||
|
||||
val ignoreTestFailures by extra(project.kotlinBuildProperties.ignoreTestFailures)
|
||||
@@ -75,7 +75,7 @@ val populateNodeModules = tasks.register<Copy>("populateNodeModules") {
|
||||
}
|
||||
}
|
||||
|
||||
into("${buildDir}/node_modules")
|
||||
into(layout.buildDirectory.dir("node_modules"))
|
||||
}
|
||||
|
||||
fun createFrameworkTest(name: String): TaskProvider<NpmTask> {
|
||||
@@ -83,12 +83,12 @@ fun createFrameworkTest(name: String): TaskProvider<NpmTask> {
|
||||
dependsOn(compileTestDevelopmentExecutableKotlinJs, populateNodeModules, "npmInstall")
|
||||
val testName = name
|
||||
val lowerName = name.lowercase()
|
||||
val tcOutput = project.file("$buildDir/tc-${lowerName}.log")
|
||||
val stdOutput = "$buildDir/test-${lowerName}.log"
|
||||
val errOutput = "$buildDir/test-${lowerName}.err.log"
|
||||
val exitCodeFile = project.file("$buildDir/test-${lowerName}.exit-code")
|
||||
val tcOutput = layout.buildDirectory.file("tc-${lowerName}.log")
|
||||
val stdOutput = layout.buildDirectory.file("test-${lowerName}.log")
|
||||
val errOutput = layout.buildDirectory.file("test-${lowerName}.err.log")
|
||||
val exitCodeFile = layout.buildDirectory.file("test-${lowerName}.exit-code")
|
||||
// inputs.files(sourceSets.test.output)
|
||||
inputs.dir("${buildDir}/node_modules")
|
||||
inputs.dir(layout.buildDirectory.dir("node_modules"))
|
||||
outputs.files(tcOutput, stdOutput, errOutput, exitCodeFile)
|
||||
|
||||
args.set(listOf("run", "test-$lowerName"))
|
||||
@@ -98,12 +98,12 @@ fun createFrameworkTest(name: String): TaskProvider<NpmTask> {
|
||||
|
||||
execOverrides {
|
||||
isIgnoreExitValue = true
|
||||
standardOutput = FileOutputStream(stdOutput)
|
||||
errorOutput = FileOutputStream(errOutput)
|
||||
standardOutput = FileOutputStream(stdOutput.get().asFile)
|
||||
errorOutput = FileOutputStream(errOutput.get().asFile)
|
||||
}
|
||||
doLast {
|
||||
println(tcOutput.readText())
|
||||
if (exitCodeFile.readText() != "0" /* && !rootProject.ignoreTestFailures*/) {
|
||||
println(tcOutput.get().asFile.readText())
|
||||
if (exitCodeFile.get().asFile.readText() != "0" /* && !rootProject.ignoreTestFailures*/) {
|
||||
throw GradleException("$testName integration test failed")
|
||||
}
|
||||
|
||||
|
||||
@@ -79,7 +79,7 @@ apiValidation {
|
||||
}
|
||||
|
||||
tasks.dokkaHtml.configure {
|
||||
outputDirectory.set(buildDir.resolve("dokka"))
|
||||
outputDirectory.set(layout.buildDirectory.dir("dokka"))
|
||||
pluginsMapConfiguration.set(
|
||||
mapOf(
|
||||
"org.jetbrains.dokka.base.DokkaBase"
|
||||
|
||||
@@ -25,7 +25,7 @@ configureJavaOnlyToolchain(JdkMajorVersion.JDK_1_8)
|
||||
publish()
|
||||
|
||||
val core = "$rootDir/core"
|
||||
val relocatedCoreSrc = "$buildDir/core-relocated"
|
||||
val relocatedCoreSrc = "${layout.buildDirectory.get().asFile}/core-relocated"
|
||||
|
||||
val proguardDeps by configurations.creating
|
||||
val proguardAdditionalInJars by configurations.creating
|
||||
|
||||
@@ -68,7 +68,7 @@ val mavenPackagesToRelocate = listOf(
|
||||
val relocatedJar by task<ShadowJar> {
|
||||
configurations = listOf(embedded)
|
||||
duplicatesStrategy = DuplicatesStrategy.INCLUDE
|
||||
destinationDirectory.set(File(buildDir, "libs"))
|
||||
destinationDirectory.set(layout.buildDirectory.dir("libs"))
|
||||
archiveClassifier.set("relocated")
|
||||
|
||||
transform(ComponentsXmlResourceTransformer())
|
||||
@@ -82,8 +82,7 @@ val relocatedJar by task<ShadowJar> {
|
||||
|
||||
val normalizeComponentsXmlEndings by tasks.registering {
|
||||
dependsOn(relocatedJar)
|
||||
val outputDirectory = buildDir.resolve(name)
|
||||
val outputFile = outputDirectory.resolve(ComponentsXmlResourceTransformer.COMPONENTS_XML_PATH)
|
||||
val outputFile = layout.buildDirectory.file("$name/${ComponentsXmlResourceTransformer.COMPONENTS_XML_PATH}")
|
||||
val relocatedJarFile = project.provider { relocatedJar.get().singleOutputFile() }
|
||||
val archiveOperations = serviceOf<ArchiveOperations>()
|
||||
outputs.file(outputFile)
|
||||
@@ -93,8 +92,9 @@ val normalizeComponentsXmlEndings by tasks.registering {
|
||||
include { it.path == ComponentsXmlResourceTransformer.COMPONENTS_XML_PATH }
|
||||
}.single().readText()
|
||||
val processedComponentsXml = componentsXml.replace("\r\n", "\n")
|
||||
outputDirectory.mkdirs()
|
||||
outputFile.writeText(processedComponentsXml)
|
||||
val outputAsFile = outputFile.get().asFile
|
||||
outputAsFile.parentFile.mkdirs()
|
||||
outputAsFile.writeText(processedComponentsXml)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -123,7 +123,7 @@ val proguard by task<CacheableProguardTask> {
|
||||
|
||||
injars(mapOf("filter" to "!META-INF/versions/**,!kotlinx/coroutines/debug/**"), normalizedJar.get().outputs.files)
|
||||
|
||||
outjars(fileFrom(buildDir, "libs", "$jarBaseName-$version-after-proguard.jar"))
|
||||
outjars(layout.buildDirectory.file("libs/$jarBaseName-$version-after-proguard.jar"))
|
||||
|
||||
javaLauncher.set(project.getToolchainLauncherFor(JdkMajorVersion.JDK_1_8))
|
||||
|
||||
|
||||
@@ -46,10 +46,10 @@ dependencies {
|
||||
}
|
||||
|
||||
val builtinsDir = "${rootDir}/core/builtins"
|
||||
val builtinsSrcDir = "${buildDir}/src/builtin-sources"
|
||||
val builtinsSrcDir = "${layout.buildDirectory.get().asFile}/src/builtin-sources"
|
||||
|
||||
val jsDir = "${projectDir}/js"
|
||||
val jsBuiltinsSrcDir = "${buildDir}/src/js-builtin-sources"
|
||||
val jsBuiltinsSrcDir = "${layout.buildDirectory.get().asFile}/src/js-builtin-sources"
|
||||
|
||||
val commonOptIns = listOf(
|
||||
"kotlin.ExperimentalMultiplatform",
|
||||
@@ -473,7 +473,7 @@ kotlin {
|
||||
}
|
||||
}
|
||||
|
||||
into("$buildDir/src/wasm-builtin-sources")
|
||||
into(layout.buildDirectory.dir("src/wasm-builtin-sources"))
|
||||
}
|
||||
|
||||
}
|
||||
@@ -527,7 +527,7 @@ kotlin {
|
||||
val prepareKotlinTestCommonNativeSources by tasks.registering(Sync::class) {
|
||||
from("../kotlin.test/common/src/main/kotlin")
|
||||
from("../kotlin.test/annotations-common/src/main/kotlin")
|
||||
into("$buildDir/src/native-kotlin-test-common-sources")
|
||||
into(layout.buildDirectory.dir("src/native-kotlin-test-common-sources"))
|
||||
}
|
||||
|
||||
kotlin {
|
||||
@@ -642,13 +642,13 @@ tasks {
|
||||
from(jsJar)
|
||||
rename { _ -> "full-runtime.klib" }
|
||||
// some tests expect stdlib-js klib in this location
|
||||
into(rootProject.buildDir.resolve("js-ir-runtime"))
|
||||
into(rootProject.layout.buildDirectory.dir("js-ir-runtime"))
|
||||
}
|
||||
|
||||
val jsRearrangedSourcesJar by registering(Jar::class) {
|
||||
archiveClassifier.set("js-sources")
|
||||
archiveVersion.set("")
|
||||
destinationDirectory.set(file("$buildDir/lib"))
|
||||
destinationDirectory.set(layout.buildDirectory.dir("lib"))
|
||||
|
||||
includeEmptyDirs = false
|
||||
duplicatesStrategy = DuplicatesStrategy.FAIL
|
||||
|
||||
@@ -25,7 +25,7 @@ val commonMainFullSources by task<Sync> {
|
||||
}
|
||||
}
|
||||
|
||||
into("$buildDir/commonMainFullSources")
|
||||
into(layout.buildDirectory.dir("commonMainFullSources"))
|
||||
}
|
||||
|
||||
val commonMainSources by task<Sync> {
|
||||
@@ -72,7 +72,7 @@ val commonMainSources by task<Sync> {
|
||||
commonMainFullSources.get().outputs.files.singleFile
|
||||
}
|
||||
|
||||
into("$buildDir/commonMainSources")
|
||||
into(layout.buildDirectory.dir("commonMainSources"))
|
||||
}
|
||||
|
||||
val commonMainCollectionSources by task<Sync> {
|
||||
@@ -82,7 +82,7 @@ val commonMainCollectionSources by task<Sync> {
|
||||
commonMainFullSources.get().outputs.files.singleFile
|
||||
}
|
||||
|
||||
into("$buildDir/commonMainCollectionSources")
|
||||
into(layout.buildDirectory.dir("commonMainCollectionSources"))
|
||||
}
|
||||
|
||||
val jsMainSources by task<Sync> {
|
||||
@@ -131,7 +131,7 @@ val jsMainSources by task<Sync> {
|
||||
into("builtins")
|
||||
}
|
||||
|
||||
into("$buildDir/jsMainSources")
|
||||
into(layout.buildDirectory.dir("jsMainSources"))
|
||||
}
|
||||
|
||||
kotlin {
|
||||
|
||||
@@ -25,7 +25,7 @@ dependencies {
|
||||
sourceSets {
|
||||
"main" {
|
||||
java.apply {
|
||||
srcDir(File(buildDir, "src"))
|
||||
srcDir(layout.buildDirectory.dir("src"))
|
||||
}
|
||||
}
|
||||
"test" {}
|
||||
@@ -50,7 +50,7 @@ val copySources by task<Sync> {
|
||||
"kotlin/enums/EnumEntries.kt",
|
||||
"kotlin/collections/AbstractList.kt",
|
||||
"kotlin/io/Serializable.kt")
|
||||
into(File(buildDir, "src"))
|
||||
into(layout.buildDirectory.dir("src"))
|
||||
}
|
||||
|
||||
|
||||
@@ -91,6 +91,6 @@ publishing {
|
||||
}
|
||||
|
||||
repositories {
|
||||
maven("${rootProject.buildDir}/internal/repo")
|
||||
maven(rootProject.layout.buildDirectory.dir("internal/repo"))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ dependencies {
|
||||
signature("org.codehaus.mojo.signature:java16:1.1@signature")
|
||||
}
|
||||
|
||||
val signaturesDirectory = buildDir.resolve("signatures")
|
||||
val signaturesDirectory = layout.buildDirectory.get().asFile.resolve("signatures")
|
||||
|
||||
val collectSignatures by tasks.registering(Sync::class) {
|
||||
from(signature)
|
||||
|
||||
@@ -64,7 +64,7 @@ val outgoingClasspath by configurations.creating {
|
||||
}
|
||||
|
||||
tasks.register<Delete>("clean") {
|
||||
delete(project.buildDir)
|
||||
delete(layout.buildDirectory)
|
||||
}
|
||||
|
||||
//endregion
|
||||
|
||||
@@ -94,11 +94,12 @@ run {
|
||||
implicitDependencies("com.google.protobuf:protoc:3.21.9:windows-x86_64@exe")
|
||||
}
|
||||
|
||||
val protocExecutable = buildDir.resolve("protoc/bin")
|
||||
val protocExecutable = layout.buildDirectory.file("protoc/bin")
|
||||
val setupProtoc = tasks.register("setupProtoc") {
|
||||
doFirst {
|
||||
protoc.files.single().copyTo(protocExecutable, overwrite = true)
|
||||
protocExecutable.setExecutable(true)
|
||||
val protocFile = protocExecutable.get().asFile
|
||||
protoc.files.single().copyTo(protocFile, overwrite = true)
|
||||
protocFile.setExecutable(true)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -122,16 +123,16 @@ run {
|
||||
|
||||
workingDir(project.projectDir)
|
||||
|
||||
commandLine(
|
||||
*arrayOf(
|
||||
protocExecutable.absolutePath,
|
||||
argumentProviders.add {
|
||||
listOf(
|
||||
protocExecutable.get().asFile.absolutePath,
|
||||
"-I=$protoSources",
|
||||
"--java_out=${javaOutput.absolutePath}",
|
||||
"--kotlin_out=${kotlinOutput.absolutePath}"
|
||||
) + protoSources.listFiles().orEmpty()
|
||||
.filter { it.extension == "proto" }
|
||||
.map { it.path },
|
||||
)
|
||||
.map { it.path }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -126,7 +126,7 @@ val cleanTestKitCacheTask = tasks.register<Delete>("cleanTestKitCache") {
|
||||
group = "Build"
|
||||
description = "Deletes temporary Gradle TestKit cache"
|
||||
|
||||
delete(project.buildDir.resolve("testKitCache"))
|
||||
delete(layout.buildDirectory.dir("testKitCache"))
|
||||
}
|
||||
|
||||
tasks.register<Delete>("cleanUserHomeKonanDir") {
|
||||
|
||||
+1
-1
@@ -7,7 +7,7 @@ plugins {
|
||||
}
|
||||
|
||||
repositories {
|
||||
maven(project(":producer").buildDir.resolve("repo"))
|
||||
maven(project(":producer").layout.buildDirectory.dir("repo"))
|
||||
mavenLocal()
|
||||
mavenCentral()
|
||||
}
|
||||
|
||||
@@ -68,7 +68,7 @@ noDefaultJar()
|
||||
val relocatedJar by task<ShadowJar> {
|
||||
configurations = listOf(relocatedJarContents)
|
||||
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
||||
destinationDirectory.set(File(buildDir, "libs"))
|
||||
destinationDirectory.set(layout.buildDirectory.dir("libs"))
|
||||
archiveClassifier.set("before-proguard")
|
||||
|
||||
// don't add this files to resources classpath to avoid IDE exceptions on kotlin project
|
||||
@@ -87,7 +87,7 @@ val proguard by task<CacheableProguardTask> {
|
||||
|
||||
injars(mapOf("filter" to "!META-INF/versions/**,!kotlinx/coroutines/debug/**"), relocatedJar.get().outputs.files)
|
||||
|
||||
outjars(fileFrom(buildDir, "libs", "$jarBaseName-$version-after-proguard.jar"))
|
||||
outjars(layout.buildDirectory.file("libs/$jarBaseName-$version-after-proguard.jar"))
|
||||
|
||||
javaLauncher.set(project.getToolchainLauncherFor(JdkMajorVersion.JDK_1_8))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user