| // 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. |
| |
| rootProject.name = "d8-r8" |
| |
| // third_party/dependencies and third_party/dependencies_plugin |
| // is downloaded and populated by running 'tools/gradle.py'. |
| pluginManagement { |
| repositories { |
| maven { url = uri("third_party/dependencies") } |
| maven { url = uri("third_party/dependencies_plugin") } |
| } |
| includeBuild(rootProject.projectDir.resolve("d8_r8/commonBuildSrc")) |
| } |
| |
| dependencyResolutionManagement { repositories { maven { url = uri("third_party/dependencies") } } } |
| |
| // This is duplicated in d8_r8/commonBuildSrc/settings.gradle.kts, keep code in sync. |
| fun resolveBuildCacheDir(repoRoot: File): File { |
| val gitFile = repoRoot.resolve(".git") |
| if (gitFile.isFile) { |
| try { |
| val gitDirLine = gitFile.useLines { lines -> lines.firstOrNull { it.startsWith("gitdir:") } } |
| if (gitDirLine != null) { |
| val gitDirStr = gitDirLine.removePrefix("gitdir:").trim() |
| val gitDir = repoRoot.resolve(gitDirStr).normalize() |
| val commonDirFile = gitDir.resolve("commondir") |
| val commonGitDir = |
| if (commonDirFile.isFile) { |
| gitDir.resolve(commonDirFile.readText().trim()).normalize() |
| } else { |
| gitDir.parentFile?.parentFile |
| } |
| val mainRepo = commonGitDir?.parentFile |
| if (mainRepo != null && mainRepo.isDirectory && mainRepo != repoRoot) { |
| return mainRepo.resolve(".buildcache") |
| } |
| } |
| } catch (_: Exception) { |
| // Fall through on error |
| } |
| } |
| return repoRoot.resolve(".buildcache") |
| } |
| |
| buildCache { local { directory = resolveBuildCacheDir(rootDir) } } |
| |
| /** |
| * path is a path to the folder containing the project, while projectPath is the gradle name (e.g. |
| * :utils). |
| */ |
| private fun includeProject(path: String, projectPath: String) { |
| val name = projectPath.removePrefix(":") |
| val dir = "${path}${name.replace(":", "/")}" |
| include(projectPath) |
| project(projectPath).projectDir = file(dir) |
| } |
| |
| fun includeProject(projectPath: String) { |
| includeProject("d8_r8/", projectPath) |
| } |
| |
| fun includeTestProject(projectPath: String) { |
| includeProject("d8_r8/test_modules/", projectPath) |
| } |
| |
| includeProject(":third_party") |
| |
| includeProject(":assistant") |
| |
| includeProject(":keepradius") |
| |
| includeProject(":keepanno") |
| |
| includeProject(":libanalyzer") |
| |
| includeProject(":resourceshrinker") |
| |
| includeProject(":main") |
| |
| includeProject(":utils") |
| |
| includeProject(":dist") |
| |
| includeProject(":library_desugar") |
| |
| includeProject(":swissarmyknife") |
| |
| includeProject(":test") |
| |
| includeProject(":tools") |
| |
| includeTestProject(":testbase") |
| |
| includeTestProject(":tests_bootstrap") |
| |
| includeTestProject(":tests_java_8") |
| |
| includeTestProject(":tests_java_8:apimodel") |
| |
| includeTestProject(":tests_java_8:classmerging") |
| |
| includeTestProject(":tests_java_8:ir") |
| |
| includeTestProject(":tests_java_8:shaking") |
| |
| includeTestProject(":tests_java_8:desugar") |
| |
| includeTestProject(":tests_java_8:naming") |
| |
| includeTestProject(":tests_java_8:kotlin") |
| |
| includeTestProject(":tests_java_8:keepanno") |
| |
| includeTestProject(":tests_java_8:retrace") |
| |
| includeTestProject(":tests_java_8:optimize") |
| |
| includeTestProject(":tests_java_8:regress") |
| |
| includeTestProject(":tests_java_8:resolution") |
| |
| includeTestProject(":tests_java_11") |
| |
| includeTestProject(":tests_java_17") |
| |
| includeTestProject(":tests_java_21") |
| |
| includeTestProject(":tests_java_25") |