buildSrc/build.gradle no longer recursively setting out dir for subprojects
to be more compatible with project isolation
Bug: 191913559
Test: Treehugger runs busytown/*.sh
Test: Run `./gradlew :help -Dorg.gradle.unsafe.isolated-projects=true --clean` and see that some warnings about buildSrc are gone
Change-Id: Ifc3450673fd255a9717f59f0124295b7bc2dd41b
diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle
index d61cf22..9353024 100644
--- a/buildSrc/build.gradle
+++ b/buildSrc/build.gradle
@@ -17,7 +17,7 @@
}
apply from: "out.gradle"
-init.chooseOutDir()
+init.chooseBuildSrcBuildDir()
ext.supportRootFolder = project.projectDir.getParentFile()
apply from: "repos.gradle"
diff --git a/buildSrc/jetpad-integration/build.gradle b/buildSrc/jetpad-integration/build.gradle
index fc0c5cc..6941452c 100644
--- a/buildSrc/jetpad-integration/build.gradle
+++ b/buildSrc/jetpad-integration/build.gradle
@@ -4,3 +4,6 @@
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
+
+apply from: "../out.gradle"
+init.chooseBuildSrcBuildDir()
diff --git a/buildSrc/out.gradle b/buildSrc/out.gradle
index 0ca9069..e0f12c2 100644
--- a/buildSrc/out.gradle
+++ b/buildSrc/out.gradle
@@ -39,17 +39,23 @@
return new Tuple(outDir, buildSrcOut)
}
-def chooseOutDir(subdir = "") {
+// Ideally this function would just be chooseBuildDir, but Gradle doesn't include the text ":buildSrc" in the project path
+def chooseBuildSrcBuildDir(subdir = "") {
def (outDir, buildSrcOut) = getOutDir(subdir)
project.ext.buildSrcOut = buildSrcOut
project.ext.outDir = outDir
- buildDir = new File(outDir, "$project.name/build")
- .getCanonicalFile()
+ def pathAsFilepath = project.path.replace(":", "").replaceAll(":", "/")
+ project.layout.buildDirectory.set(new File(buildSrcOut, "$pathAsFilepath/build").getCanonicalFile())
+}
+
+def chooseOutDir(subdir = "") {
+ chooseBuildSrcBuildDir()
subprojects {
// Change buildDir first so that all plugins pick up the new value.
- project.buildDir = new File("$project.parent.buildDir/../$project.name/build")
+ project.layout.buildDirectory.set(new File("$project.parent.buildDir/../$project.name/build"))
}
}
ext.init.getOutDir = this.&getOutDir
ext.init.chooseOutDir = this.&chooseOutDir
+ext.init.chooseBuildSrcBuildDir = this.&chooseBuildSrcBuildDir
diff --git a/buildSrc/shared-dependencies.gradle b/buildSrc/shared-dependencies.gradle
index 96189f6..403bb79 100644
--- a/buildSrc/shared-dependencies.gradle
+++ b/buildSrc/shared-dependencies.gradle
@@ -1,6 +1,8 @@
// This file applies dependencies common to projects in buildSrc
apply from: "${buildscript.sourceFile.parent}/kotlin-dsl-dependency.gradle"
+// copy findGradleKotlinDsl to a local variable: https://github.com/gradle/gradle/issues/26057
+def findGradleKotlinDsl = project.findGradleKotlinDsl
dependencies {
// Gradle APIs
diff --git a/buildSrc/shared.gradle b/buildSrc/shared.gradle
index 060ae08..f907dd2 100644
--- a/buildSrc/shared.gradle
+++ b/buildSrc/shared.gradle
@@ -17,6 +17,8 @@
dependencies {
implementation(project(":jetpad-integration"))
}
+apply from: "../out.gradle"
+init.chooseBuildSrcBuildDir()
apply from: "../shared-dependencies.gradle"