Remove references to old DownloadDependencyTask
Bug: b/270105162
Change-Id: I624a55239e863fcb81b47ff382a7997722f5d119
diff --git a/d8_r8/commonBuildSrc/src/main/kotlin/DependenciesPlugin.kt b/d8_r8/commonBuildSrc/src/main/kotlin/DependenciesPlugin.kt
index a2410ae..11dde81 100644
--- a/d8_r8/commonBuildSrc/src/main/kotlin/DependenciesPlugin.kt
+++ b/d8_r8/commonBuildSrc/src/main/kotlin/DependenciesPlugin.kt
@@ -87,24 +87,6 @@
return "****** ${title} ******"
}
-fun Project.ensureThirdPartyDependencies(name : String, deps : List<ThirdPartyDependency>) : Task {
- val outputFiles : MutableList<File> = mutableListOf()
- val root = getRoot()
- val depsTasks = deps.map { tpd ->
- val projectAndTaskName = "${project.name}-$name"
- val downloadTaskName = "download-third-party-$projectAndTaskName-${tpd.packageName}"
- val downloadTask = tasks.register<DownloadDependencyTask>(downloadTaskName) {
- setDependency(root.resolve(tpd.sha1File), root.resolve(tpd.path), tpd.type, root)
- }.get()
- outputFiles.add(tpd.path)
- downloadTask
- }
- return tasks.register("ensure-third-party-$name") {
- dependsOn(*depsTasks.toTypedArray())
- outputs.files(outputFiles)
- }.get()
-}
-
/**
* Builds a jar for each sub folder in a test source set.
*
diff --git a/d8_r8/commonBuildSrc/src/main/kotlin/DownloadAllDependenciesTask.kt b/d8_r8/commonBuildSrc/src/main/kotlin/DownloadAllDependenciesTask.kt
index 62328e6..bc30ac2 100644
--- a/d8_r8/commonBuildSrc/src/main/kotlin/DownloadAllDependenciesTask.kt
+++ b/d8_r8/commonBuildSrc/src/main/kotlin/DownloadAllDependenciesTask.kt
@@ -17,7 +17,6 @@
import org.gradle.api.tasks.InputFiles
import org.gradle.api.tasks.OutputDirectories
import org.gradle.api.tasks.TaskAction
-import org.gradle.api.tasks.options.Option
import org.gradle.internal.os.OperatingSystem
import org.gradle.workers.WorkAction
import org.gradle.workers.WorkParameters
diff --git a/d8_r8/commonBuildSrc/src/main/kotlin/DownloadDependencyTask.kt b/d8_r8/commonBuildSrc/src/main/kotlin/DownloadDependencyTask.kt
deleted file mode 100644
index 370bcad..0000000
--- a/d8_r8/commonBuildSrc/src/main/kotlin/DownloadDependencyTask.kt
+++ /dev/null
@@ -1,201 +0,0 @@
-// Copyright (c) 2023, the R8 project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import DependenciesPlugin.Companion.computeRoot
-import java.io.BufferedReader
-import java.io.File
-import java.io.IOException
-import java.io.InputStreamReader
-import java.io.RandomAccessFile
-import java.lang.Thread.sleep
-import java.nio.channels.FileChannel
-import java.nio.channels.FileLock
-import java.nio.channels.OverlappingFileLockException
-import java.nio.charset.StandardCharsets
-import java.util.Arrays
-import java.util.stream.Collectors
-import javax.inject.Inject
-import org.gradle.api.DefaultTask
-import org.gradle.api.file.RegularFileProperty
-import org.gradle.api.provider.Property
-import org.gradle.api.tasks.InputFile
-import org.gradle.api.tasks.OutputDirectory
-import org.gradle.api.tasks.TaskAction
-import org.gradle.api.tasks.options.Option
-import org.gradle.internal.os.OperatingSystem
-import org.gradle.workers.WorkAction
-import org.gradle.workers.WorkParameters
-import org.gradle.workers.WorkerExecutor
-
-abstract class DownloadDependencyTask : DefaultTask() {
-
- private var dependencyType: DependencyType = DependencyType.GOOGLE_STORAGE
- private var _outputDir: File? = null
- private var _tarGzFile: File? = null
- private var _sha1File: File? = null
- private var _root: File? = null
-
- @InputFile
- fun getInputFile(): File? {
- return _sha1File
- }
-
- @OutputDirectory
- fun getOutputDir(): File? {
- return _outputDir
- }
-
- @Inject
- protected abstract fun getWorkerExecutor(): WorkerExecutor?
-
- @Option(
- option = "dependency",
- description = "Sets the dependency information for a cloud stored file")
- fun setDependency(sha1File: File, outputDir: File, dependencyType: DependencyType, root: File) {
- _outputDir = outputDir
- _sha1File = sha1File
- _tarGzFile = sha1File.resolveSibling(sha1File.name.replace(".sha1", ""))
- _root = root
- this.dependencyType = dependencyType
- }
-
- @TaskAction
- fun execute() {
- val sha1File = _sha1File!!
- val outputDir = _outputDir!!
- val tarGzFile = _tarGzFile!!
- if (!sha1File.exists()) {
- throw RuntimeException("Missing sha1 file: $sha1File")
- }
- if (!shouldExecute(outputDir, tarGzFile, sha1File)) {
- return
- }
- // Create a lock to ensure sequential a single downloader per third party dependency.
- val lockFile = sha1File.parentFile.resolve(sha1File.name + ".download_deps_lock")
- if (!lockFile.exists()) {
- lockFile.createNewFile()
- }
- getWorkerExecutor()!!
- .noIsolation()
- .submit(RunDownload::class.java) {
- type.set(dependencyType)
- this.sha1File.set(sha1File)
- this.outputDir.set(outputDir)
- this.tarGzFile.set(tarGzFile)
- this.lockFile.set(lockFile)
- this.root.set(_root!!)
- }
- }
-
- interface RunDownloadParameters : WorkParameters {
- val type : Property<DependencyType>
- val sha1File : RegularFileProperty
- val outputDir : RegularFileProperty
- val tarGzFile : RegularFileProperty
- val lockFile : RegularFileProperty
- val root : RegularFileProperty
- }
-
- abstract class RunDownload : WorkAction<RunDownloadParameters> {
- override fun execute() {
- var lock : FileLock? = null
- try {
- val sha1File = parameters.sha1File.asFile.get()
- val outputDir = parameters.outputDir.asFile.get()
- val tarGzFile = parameters.tarGzFile.asFile.get()
- if (!shouldExecute(outputDir, tarGzFile, sha1File)) {
- return;
- }
- val lockFile = parameters.lockFile.asFile.get()
- val channel: FileChannel = RandomAccessFile(lockFile, "rw").getChannel()
- // Block until we have the lock.
- var couldTakeLock = false
- while (!couldTakeLock) {
- try {
- lock = channel.lock()
- couldTakeLock = true;
- } catch (ignored: OverlappingFileLockException) {
- sleep(50);
- }
- }
- if (!shouldExecute(outputDir, tarGzFile, sha1File)) {
- return;
- }
- if (outputDir.exists() && outputDir.isDirectory) {
- outputDir.delete()
- }
- when (parameters.type.get()) {
- DependencyType.GOOGLE_STORAGE -> {
- downloadFromGoogleStorage(parameters, sha1File)
- }
- DependencyType.X20 -> {
- downloadFromX20(parameters, sha1File)
- }
- }
- } catch (e: Exception) {
- throw RuntimeException(e)
- } finally {
- lock?.release()
- }
- }
-
- @Throws(IOException::class, InterruptedException::class)
- private fun downloadFromGoogleStorage(parameters: RunDownloadParameters, sha1File: File) {
- val args = Arrays.asList("-n", "-b", "r8-deps", "-s", "-u", sha1File.toString())
- if (OperatingSystem.current().isWindows) {
- val command: MutableList<String> = ArrayList()
- command.add("download_from_google_storage.bat")
- command.addAll(args)
- runProcess(parameters, ProcessBuilder().command(command))
- } else {
- runProcess(
- parameters,
- ProcessBuilder()
- .command("bash",
- "-c",
- "download_from_google_storage " + java.lang.String.join(" ", args)))
- }
- }
-
- @Throws(IOException::class, InterruptedException::class)
- private fun downloadFromX20(parameters: RunDownloadParameters, sha1File: File) {
- if (OperatingSystem.current().isWindows) {
- throw RuntimeException("Downloading from x20 unsupported on windows")
- }
- runProcess(parameters,
- ProcessBuilder()
- .command("bash", "-c", "tools/download_from_x20.py $sha1File"))
- }
-
- @Throws(IOException::class, InterruptedException::class)
- private fun runProcess(parameters: RunDownloadParameters, builder: ProcessBuilder) {
- builder.directory(parameters.root.asFile.get())
- val command = java.lang.String.join(" ", builder.command())
- val p = builder.start()
- val exit = p.waitFor()
- if (exit != 0) {
- throw IOException("Process failed for $command\n"
- + BufferedReader(
- InputStreamReader(p.errorStream, StandardCharsets.UTF_8))
- .lines()
- .collect(Collectors.joining("\n")))
- }
- }
- }
-
- companion object {
- fun shouldExecute(outputDir: File, tarGzFile: File, sha1File: File) : Boolean {
- // First run will write the tar.gz file, causing the second run to still be out-of-date.
- // Check if the modification time of the tar is newer than the sha in which case we are done.
- if (outputDir.exists()
- && outputDir.isDirectory
- && outputDir.list().isNotEmpty()
- && tarGzFile.exists()
- && sha1File.lastModified() <= tarGzFile.lastModified()) {
- return false
- }
- return true
- }
- }
-}
\ No newline at end of file
diff --git a/d8_r8/test_modules/tests_java_10/build.gradle.kts b/d8_r8/test_modules/tests_java_10/build.gradle.kts
index 7d653b1..fa6f761 100644
--- a/d8_r8/test_modules/tests_java_10/build.gradle.kts
+++ b/d8_r8/test_modules/tests_java_10/build.gradle.kts
@@ -26,13 +26,9 @@
// We just need to register the examples jars for it to be referenced by other modules.
val buildExampleJars = buildExampleJars("examplesJava10")
-val thirdPartyCompileDependenciesTask = ensureThirdPartyDependencies(
- "compileDeps",
- listOf(Jdk.JDK_11.getThirdPartyDependency()))
-
tasks {
withType<JavaCompile> {
- dependsOn(thirdPartyCompileDependenciesTask)
+ dependsOn(gradle.includedBuild("shared").task(":downloadDeps"))
options.setFork(true)
options.forkOptions.memoryMaximumSize = "3g"
options.forkOptions.executable = getCompilerPath(Jdk.JDK_11)
diff --git a/d8_r8/test_modules/tests_java_10/settings.gradle.kts b/d8_r8/test_modules/tests_java_10/settings.gradle.kts
index 53e69d0..d7b2f9a 100644
--- a/d8_r8/test_modules/tests_java_10/settings.gradle.kts
+++ b/d8_r8/test_modules/tests_java_10/settings.gradle.kts
@@ -25,3 +25,5 @@
}
rootProject.name = "tests_java_10"
+val root = rootProject.projectDir.parentFile.parentFile
+includeBuild(root.resolve("shared"))
diff --git a/d8_r8/test_modules/tests_java_11/build.gradle.kts b/d8_r8/test_modules/tests_java_11/build.gradle.kts
index f056220..d8f620f 100644
--- a/d8_r8/test_modules/tests_java_11/build.gradle.kts
+++ b/d8_r8/test_modules/tests_java_11/build.gradle.kts
@@ -26,13 +26,9 @@
// We just need to register the examples jars for it to be referenced by other modules.
val buildExampleJars = buildExampleJars("examplesJava11")
-val thirdPartyCompileDependenciesTask = ensureThirdPartyDependencies(
- "compileDeps",
- listOf(Jdk.JDK_11.getThirdPartyDependency()))
-
tasks {
withType<JavaCompile> {
- dependsOn(thirdPartyCompileDependenciesTask)
+ dependsOn(gradle.includedBuild("shared").task(":downloadDeps"))
options.setFork(true)
options.forkOptions.memoryMaximumSize = "3g"
options.forkOptions.executable = getCompilerPath(Jdk.JDK_11)
diff --git a/d8_r8/test_modules/tests_java_11/settings.gradle.kts b/d8_r8/test_modules/tests_java_11/settings.gradle.kts
index 4dc457a..90fa823 100644
--- a/d8_r8/test_modules/tests_java_11/settings.gradle.kts
+++ b/d8_r8/test_modules/tests_java_11/settings.gradle.kts
@@ -25,3 +25,5 @@
}
rootProject.name = "tests_java_11"
+val root = rootProject.projectDir.parentFile.parentFile
+includeBuild(root.resolve("shared"))
diff --git a/d8_r8/test_modules/tests_java_17/build.gradle.kts b/d8_r8/test_modules/tests_java_17/build.gradle.kts
index 005cb87..92f1dcd 100644
--- a/d8_r8/test_modules/tests_java_17/build.gradle.kts
+++ b/d8_r8/test_modules/tests_java_17/build.gradle.kts
@@ -26,13 +26,9 @@
// We just need to register the examples jars for it to be referenced by other modules.
val buildExampleJars = buildExampleJars("examplesJava17")
-val thirdPartyCompileDependenciesTask = ensureThirdPartyDependencies(
- "compileDeps",
- listOf(Jdk.JDK_17.getThirdPartyDependency()))
-
tasks {
withType<JavaCompile> {
- dependsOn(thirdPartyCompileDependenciesTask)
+ dependsOn(gradle.includedBuild("shared").task(":downloadDeps"))
options.setFork(true)
options.forkOptions.memoryMaximumSize = "3g"
options.forkOptions.executable = getCompilerPath(Jdk.JDK_17)
diff --git a/d8_r8/test_modules/tests_java_17/settings.gradle.kts b/d8_r8/test_modules/tests_java_17/settings.gradle.kts
index 3312a37..fc53d30 100644
--- a/d8_r8/test_modules/tests_java_17/settings.gradle.kts
+++ b/d8_r8/test_modules/tests_java_17/settings.gradle.kts
@@ -25,3 +25,5 @@
}
rootProject.name = "tests_java_17"
+val root = rootProject.projectDir.parentFile.parentFile
+includeBuild(root.resolve("shared"))
diff --git a/d8_r8/test_modules/tests_java_20/build.gradle.kts b/d8_r8/test_modules/tests_java_20/build.gradle.kts
index f2d2e31..43037f0 100644
--- a/d8_r8/test_modules/tests_java_20/build.gradle.kts
+++ b/d8_r8/test_modules/tests_java_20/build.gradle.kts
@@ -26,13 +26,9 @@
// We just need to register the examples jars for it to be referenced by other modules.
val buildExampleJars = buildExampleJars("examplesJava20")
-val thirdPartyCompileDependenciesTask = ensureThirdPartyDependencies(
- "compileDeps",
- listOf(Jdk.JDK_20.getThirdPartyDependency()))
-
tasks {
withType<JavaCompile> {
- dependsOn(thirdPartyCompileDependenciesTask)
+ dependsOn(gradle.includedBuild("shared").task(":downloadDeps"))
options.setFork(true)
options.forkOptions.memoryMaximumSize = "3g"
options.forkOptions.executable = getCompilerPath(Jdk.JDK_20)
diff --git a/d8_r8/test_modules/tests_java_20/settings.gradle.kts b/d8_r8/test_modules/tests_java_20/settings.gradle.kts
index 0fc5857..85d94d0 100644
--- a/d8_r8/test_modules/tests_java_20/settings.gradle.kts
+++ b/d8_r8/test_modules/tests_java_20/settings.gradle.kts
@@ -25,3 +25,5 @@
}
rootProject.name = "tests_java_20"
+val root = rootProject.projectDir.parentFile.parentFile
+includeBuild(root.resolve("shared"))
diff --git a/d8_r8/test_modules/tests_java_9/build.gradle.kts b/d8_r8/test_modules/tests_java_9/build.gradle.kts
index bda4b77..136a506 100644
--- a/d8_r8/test_modules/tests_java_9/build.gradle.kts
+++ b/d8_r8/test_modules/tests_java_9/build.gradle.kts
@@ -26,13 +26,9 @@
// We just need to register the examples jars for it to be referenced by other modules.
val buildExampleJars = buildExampleJars("examplesJava9")
-val thirdPartyCompileDependenciesTask = ensureThirdPartyDependencies(
- "compileDeps",
- listOf(Jdk.JDK_9.getThirdPartyDependency()))
-
tasks {
withType<JavaCompile> {
- dependsOn(thirdPartyCompileDependenciesTask)
+ dependsOn(gradle.includedBuild("shared").task(":downloadDeps"))
options.setFork(true)
options.forkOptions.memoryMaximumSize = "3g"
options.forkOptions.executable = getCompilerPath(Jdk.JDK_9)
diff --git a/d8_r8/test_modules/tests_java_9/settings.gradle.kts b/d8_r8/test_modules/tests_java_9/settings.gradle.kts
index 2639b0f..46bc3a8 100644
--- a/d8_r8/test_modules/tests_java_9/settings.gradle.kts
+++ b/d8_r8/test_modules/tests_java_9/settings.gradle.kts
@@ -25,3 +25,5 @@
}
rootProject.name = "tests_java_9"
+val root = rootProject.projectDir.parentFile.parentFile
+includeBuild(root.resolve("shared"))
diff --git a/d8_r8/test_modules/tests_java_examples/build.gradle.kts b/d8_r8/test_modules/tests_java_examples/build.gradle.kts
index 95a9105..63584d2 100644
--- a/d8_r8/test_modules/tests_java_examples/build.gradle.kts
+++ b/d8_r8/test_modules/tests_java_examples/build.gradle.kts
@@ -26,11 +26,11 @@
testCompileOnly(Deps.mockito)
}
-val thirdPartyCompileDependenciesTask = ensureThirdPartyDependencies(
- "compileDeps",
- listOf(Jdk.JDK_11.getThirdPartyDependency()))
-
tasks {
+ withType<JavaCompile> {
+ dependsOn(gradle.includedBuild("shared").task(":downloadDeps"))
+ }
+
compileTestJava {
options.compilerArgs = listOf("-g:source,lines")
}
diff --git a/d8_r8/test_modules/tests_java_examples/settings.gradle.kts b/d8_r8/test_modules/tests_java_examples/settings.gradle.kts
index 77e513f..8b0fe4e 100644
--- a/d8_r8/test_modules/tests_java_examples/settings.gradle.kts
+++ b/d8_r8/test_modules/tests_java_examples/settings.gradle.kts
@@ -25,3 +25,5 @@
}
rootProject.name = "tests_java_examples"
+val root = rootProject.projectDir.parentFile.parentFile
+includeBuild(root.resolve("shared"))
diff --git a/d8_r8/test_modules/tests_java_examplesAndroidN/build.gradle.kts b/d8_r8/test_modules/tests_java_examplesAndroidN/build.gradle.kts
index 57b641f..38406dc 100644
--- a/d8_r8/test_modules/tests_java_examplesAndroidN/build.gradle.kts
+++ b/d8_r8/test_modules/tests_java_examplesAndroidN/build.gradle.kts
@@ -29,12 +29,8 @@
// We just need to register the examples jars for it to be referenced by other modules.
val buildExampleJars = buildExampleJars("examplesAndroidN")
-val thirdPartyCompileDependenciesTask = ensureThirdPartyDependencies(
- "compileDeps",
- listOf(Jdk.JDK_11.getThirdPartyDependency()))
-
tasks {
withType<JavaCompile> {
- dependsOn(thirdPartyCompileDependenciesTask)
+ dependsOn(gradle.includedBuild("shared").task(":downloadDeps"))
}
}
diff --git a/d8_r8/test_modules/tests_java_examplesAndroidN/settings.gradle.kts b/d8_r8/test_modules/tests_java_examplesAndroidN/settings.gradle.kts
index 000e19b..8a41fce 100644
--- a/d8_r8/test_modules/tests_java_examplesAndroidN/settings.gradle.kts
+++ b/d8_r8/test_modules/tests_java_examplesAndroidN/settings.gradle.kts
@@ -25,3 +25,5 @@
}
rootProject.name = "tests_java_examplesAndroidN"
+val root = rootProject.projectDir.parentFile.parentFile
+includeBuild(root.resolve("shared"))
diff --git a/d8_r8/test_modules/tests_java_examplesAndroidO/build.gradle.kts b/d8_r8/test_modules/tests_java_examplesAndroidO/build.gradle.kts
index 062128c..2f8a9a0 100644
--- a/d8_r8/test_modules/tests_java_examplesAndroidO/build.gradle.kts
+++ b/d8_r8/test_modules/tests_java_examplesAndroidO/build.gradle.kts
@@ -36,16 +36,9 @@
// We just need to register the examples jars for it to be referenced by other modules.
val buildExampleJars = buildExampleJars("examplesAndroidO")
-val thirdPartyCompileDependenciesTask = ensureThirdPartyDependencies(
- "compileDeps",
- listOf(
- ThirdPartyDeps.examplesAndroidOLegacy,
- Jdk.JDK_11.getThirdPartyDependency(),
- getThirdPartyAndroidJar("lib-v26")))
-
tasks {
withType<JavaCompile> {
- dependsOn(thirdPartyCompileDependenciesTask)
+ dependsOn(gradle.includedBuild("shared").task(":downloadDeps"))
options.compilerArgs.add("-Xlint:-options")
options.compilerArgs.add("-parameters")
}
diff --git a/d8_r8/test_modules/tests_java_examplesAndroidO/settings.gradle.kts b/d8_r8/test_modules/tests_java_examplesAndroidO/settings.gradle.kts
index d508d51..0c63913 100644
--- a/d8_r8/test_modules/tests_java_examplesAndroidO/settings.gradle.kts
+++ b/d8_r8/test_modules/tests_java_examplesAndroidO/settings.gradle.kts
@@ -25,3 +25,5 @@
}
rootProject.name = "tests_java_examplesAndroidO"
+val root = rootProject.projectDir.parentFile.parentFile
+includeBuild(root.resolve("shared"))
diff --git a/d8_r8/test_modules/tests_java_examplesAndroidP/build.gradle.kts b/d8_r8/test_modules/tests_java_examplesAndroidP/build.gradle.kts
index efed289..7b418461 100644
--- a/d8_r8/test_modules/tests_java_examplesAndroidP/build.gradle.kts
+++ b/d8_r8/test_modules/tests_java_examplesAndroidP/build.gradle.kts
@@ -29,12 +29,9 @@
// We just need to register the examples jars for it to be referenced by other modules.
val buildExampleJars = buildExampleJars("examplesAndroidP")
-val thirdPartyCompileDependenciesTask = ensureThirdPartyDependencies(
- "compileDeps",
- listOf(Jdk.JDK_11.getThirdPartyDependency()))
tasks {
withType<JavaCompile> {
- dependsOn(thirdPartyCompileDependenciesTask)
+ dependsOn(gradle.includedBuild("shared").task(":downloadDeps"))
}
}
diff --git a/d8_r8/test_modules/tests_java_examplesAndroidP/settings.gradle.kts b/d8_r8/test_modules/tests_java_examplesAndroidP/settings.gradle.kts
index 1e0be82..bf31cb9 100644
--- a/d8_r8/test_modules/tests_java_examplesAndroidP/settings.gradle.kts
+++ b/d8_r8/test_modules/tests_java_examplesAndroidP/settings.gradle.kts
@@ -25,3 +25,5 @@
}
rootProject.name = "tests_java_examplesAndroidP"
+val root = rootProject.projectDir.parentFile.parentFile
+includeBuild(root.resolve("shared"))
diff --git a/d8_r8/test_modules/tests_java_kotlinR8TestResources/build.gradle.kts b/d8_r8/test_modules/tests_java_kotlinR8TestResources/build.gradle.kts
index 06d9518..2ca6560 100644
--- a/d8_r8/test_modules/tests_java_kotlinR8TestResources/build.gradle.kts
+++ b/d8_r8/test_modules/tests_java_kotlinR8TestResources/build.gradle.kts
@@ -29,15 +29,13 @@
// We just need to register the examples jars for it to be referenced by other modules.
val buildExampleJars = buildExampleJars("kotlinR8TestResources")
-val thirdPartyCompileDependenciesTask = ensureThirdPartyDependencies(
- "compileDeps",
- listOf(Jdk.JDK_11.getThirdPartyDependency()))
-
tasks {
withType<JavaCompile> {
- dependsOn(thirdPartyCompileDependenciesTask)
+ dependsOn(gradle.includedBuild("shared").task(":downloadDeps"))
}
+
withType<KotlinCompile> {
+ dependsOn(gradle.includedBuild("shared").task(":downloadDeps"))
kotlinOptions {
jvmTarget = "1.8"
}
diff --git a/d8_r8/test_modules/tests_java_kotlinR8TestResources/settings.gradle.kts b/d8_r8/test_modules/tests_java_kotlinR8TestResources/settings.gradle.kts
index 7eb50aa..f5d5e59 100644
--- a/d8_r8/test_modules/tests_java_kotlinR8TestResources/settings.gradle.kts
+++ b/d8_r8/test_modules/tests_java_kotlinR8TestResources/settings.gradle.kts
@@ -25,3 +25,5 @@
}
rootProject.name = "tests_java_kotlinR8TestResources"
+val root = rootProject.projectDir.parentFile.parentFile
+includeBuild(root.resolve("shared"))