blob: e6b4f08dd4bc2cbc58a10e67474c05ce4980a210 [file] [log] [blame]
import groovy.transform.Field
pluginManagement {
repositories {
maven {
url = new File(buildscript.sourceFile.parent + "/../../prebuilts/androidx/external").getCanonicalFile()
}
if (System.getenv("ALLOW_PUBLIC_REPOS") != null || System.getProperty("ALLOW_PUBLIC_REPOS") != null) {
mavenCentral()
google()
maven {
url = "https://plugins.gradle.org/m2/"
}
}
}
}
buildscript {
ext.supportRootFolder = buildscript.sourceFile.getParentFile()
apply(from: "buildSrc/repos.gradle")
repos.addMavenRepositories(repositories)
dependencies {
classpath("com.gradle:gradle-enterprise-gradle-plugin:3.10.1")
classpath("com.gradle:common-custom-user-data-gradle-plugin:1.6.5")
classpath("androidx.build.gradle.gcpbuildcache:gcpbuildcache:1.0.0-alpha05")
}
}
// Abort immediately if we're running in Studio, but not a managed instance of Studio.
if (startParameter.projectProperties.containsKey('android.injected.invoked.from.ide')) {
def expectedAgpVersion = System.getenv().get("EXPECTED_AGP_VERSION")
if (expectedAgpVersion == null) {
throw new Exception("Android Studio must be run from studiow or gradlew studio.")
}
}
// Makes strong assumptions about the project structure.
def prebuiltsRoot = new File(
buildscript.sourceFile.parentFile.parentFile.parentFile,
"prebuilts"
).absolutePath
def rootProjectRepositories
apply from: "buildSrc/out.gradle"
def (outDir, buildSrcOut) = init.getOutDir()
getGradle().beforeProject {
// Migrate to dependencyResolutionManagement.repositories when
// https://github.com/gradle/gradle/issues/17295 is fixed
if (it.path == ":") {
repos.addMavenRepositories(it.repositories)
rootProjectRepositories = it.repositories
// Set buildSrcOut and outDir extras on root project
it.ext.buildSrcOut = buildSrcOut
it.ext.outDir = outDir
} else {
// Performance optimization because it is more efficient to reuse
// repositories from the root project than recreate identical ones
// on each project
it.repositories.addAll(rootProjectRepositories)
}
it.ext.prebuiltsRoot = prebuiltsRoot
// Expected out directory structure for :foo:bar is out/androidx/foo/bar
it.buildDir = new File(outDir, "androidx/${it.path.replace(":", "/")}/build")
}
apply(plugin: "com.gradle.enterprise")
apply(plugin: "com.gradle.common-custom-user-data-gradle-plugin")
apply(plugin: "androidx.build.gradle.gcpbuildcache")
gradleEnterprise {
server = "https://ge.androidx.dev"
buildScan {
capture {
taskInputFiles = true
}
obfuscation {
hostname { host -> "unset" }
ipAddresses { addresses -> addresses.collect { address -> "0.0.0.0"} }
}
def buildNumber = System.getenv("BUILD_NUMBER")
if (buildNumber != null) {
value("BUILD_NUMBER", buildNumber)
link("ci.android.com build", "https://ci.android.com/builds/branches/aosp-androidx-main/grid?head=$buildNumber&tail=$buildNumber")
}
value("androidx.compose.multiplatformEnabled", isMultiplatformEnabled().toString())
value("androidx.projects", getRequestedProjectSubsetName() ?: "Unset")
value("androidx.useMaxDepVersions", providers.gradleProperty("androidx.useMaxDepVersions").isPresent().toString())
publishAlways()
publishIfAuthenticated()
}
}
rootProject.name = "androidx"
dependencyResolutionManagement {
versionCatalogs {
libs {
def metalavaOverride = System.getenv("METALAVA_VERSION")
if (metalavaOverride != null) {
logger.warn("Using custom version ${metalavaOverride} of metalava due to METALAVA_VERSION being set.")
version('metalava', metalavaOverride)
}
def skikoOverride = System.getenv("SKIKO_VERSION")
if (skikoOverride != null) {
logger.warn("Using custom version ${skikoOverride} of SKIKO due to SKIKO_VERSION being set.")
version('skiko', skikoOverride)
}
String os = System.getProperty("os.name").toLowerCase(Locale.US)
String currentOsArtifact
if (os.contains("mac os x") || os.contains("darwin") || os.contains("osx")) {
def arch = System.getProperty("os.arch")
if (arch == "aarch64") {
currentOsArtifact = "skiko-awt-runtime-macos-arm64"
} else {
currentOsArtifact = "skiko-awt-runtime-macos-x64"
}
} else if (os.startsWith("win")) {
currentOsArtifact = "skiko-awt-runtime-windows-x64"
} else if (os.startsWith("linux") ) {
def arch = System.getProperty("os.arch")
if (arch == "aarch64") {
currentOsArtifact = "skiko-awt-runtime-linux-arm64"
} else {
currentOsArtifact = "skiko-awt-runtime-linux-x64"
}
} else {
throw GradleException("Unsupported operating system $os")
}
library("skikoCurrentOs", "org.jetbrains.skiko", currentOsArtifact).versionRef("skiko")
}
}
}
boolean isMultiplatformEnabled() {
def mppParameter = properties.get("androidx.compose.multiplatformEnabled")
if (mppParameter == null) return false
return Boolean.parseBoolean(mppParameter)
}
/////////////////////////////
//
// Buildscript utils
//
/////////////////////////////
enum BuildType {
MAIN,
COMPOSE,
FLAN,
MEDIA,
WEAR,
GLANCE,
TOOLS,
KMP
}
private String getRequestedProjectSubsetName() {
def prop = providers.gradleProperty("androidx.projects")
if (prop.isPresent()) {
return prop.get().toUpperCase()
}
def envProp = providers.environmentVariable("ANDROIDX_PROJECTS")
if (envProp.isPresent()) {
return envProp.get().toUpperCase()
}
return null
}
boolean isAllProjects() {
String projectSubsetName = getRequestedProjectSubsetName()
return requestedProjectSubsetName == null || requestedProjectSubsetName == "ALL"
}
private Set<BuildType> createRequestedFilter() {
Set<BuildType> filter = new HashSet<>()
String projectSubsetName = getRequestedProjectSubsetName()
if (projectSubsetName == null) return null
String[] requestedFilter = projectSubsetName.split(",")
for (String requestedType : requestedFilter) {
switch (requestedType) {
case "MAIN":
filter.add(BuildType.MAIN)
break
case "COMPOSE":
filter.add(BuildType.COMPOSE)
break
case "FLAN":
filter.add(BuildType.FLAN)
break
case "MEDIA":
filter.add(BuildType.MEDIA)
break
case "WEAR":
filter.add(BuildType.WEAR)
break
case "GLANCE":
// Glance currently depends on a large part of Compose, add it here rather than
// requiring every project to be tagged
filter.add(BuildType.COMPOSE)
filter.add(BuildType.GLANCE)
break
case "TOOLS":
filter.add(BuildType.TOOLS)
break
case "KMP":
filter.add(BuildType.KMP)
break;
case "ALL":
// Return null so that no filtering is done
return null
break
default:
throw new Exception("Unsupported project type $requestedType\n" +
"We only support the following:\n" +
"ALL - all androidx projects\n" +
"COMPOSE - compose projects\n" +
"MAIN - androidx projects that are not compose\n" +
"FLAN - fragment, lifecycle, activity, and navigation projects\n" +
"MEDIA - media, media2, and mediarouter projects\n" +
"WEAR - Wear OS projects\n" +
"GLANCE - glance projects")
}
}
return filter
}
/**
* Requested project filter based on STUDIO_PROJECT_FILTER env variable.
*
* Note that null value means all the projects should be included
*/
@Field
Set<BuildType> requestedFilter
requestedFilter = createRequestedFilter()
boolean shouldIncludeForFilter(List<BuildType> includeList) {
if (includeList.empty) return true
if (requestedFilter == null) return true
for (BuildType type : includeList) {
if (requestedFilter.contains(type)) return true
}
return false
}
def includeProject(name, List<BuildType> filter = []) {
includeProject(name, null, filter)
}
// Calling includeProject(name, filePath) is shorthand for:
//
// include(name)
// project(name).projectDir = new File(filePath)
//
// Note that <name> directly controls the Gradle project name, and also indirectly sets:
// the project name in the IDE
// the Maven artifactId
//
def includeProject(name, filePath, List<BuildType> filter = []) {
if (!shouldIncludeForFilter(filter)) return
settings.include(name)
def file
if (filePath != null) {
if (filePath instanceof String) {
if ((":" + filePath.replace("/",":")).equals(name)) {
throw new IllegalArgumentException("Redundant filepath for $name, please remove it")
}
file = new File(rootDir, filePath)
} else {
file = filePath
}
project(name).projectDir = file
} else {
file = project(name).projectDir
}
if (!file.exists()) {
// This option is supported so that development/simplify_build_failure.sh can try
// deleting entire projects at once to identify the cause of a build failure
if (System.getenv("ALLOW_MISSING_PROJECTS") == null) {
throw new Exception("Path " + file + " does not exist; cannot include project " + name)
}
}
}
/////////////////////////////
//
// Libraries
//
/////////////////////////////
includeProject(":activity:activity", [BuildType.MAIN, BuildType.FLAN, BuildType.COMPOSE, BuildType.WEAR])
includeProject(":activity:activity-compose", [BuildType.COMPOSE])
includeProject(":activity:activity-compose:activity-compose-samples", "activity/activity-compose/samples", [BuildType.COMPOSE])
includeProject(":activity:activity-compose:integration-tests:activity-demos", [BuildType.COMPOSE])
includeProject(":activity:activity-compose-lint", [BuildType.COMPOSE])
includeProject(":activity:activity-ktx", [BuildType.MAIN, BuildType.FLAN, BuildType.COMPOSE, BuildType.WEAR])
includeProject(":activity:activity-lint", [BuildType.MAIN, BuildType.FLAN, BuildType.COMPOSE, BuildType.WEAR])
includeProject(":activity:integration-tests:testapp", [BuildType.MAIN, BuildType.FLAN])
includeProject(":ads:ads-identifier", [BuildType.MAIN])
includeProject(":ads:ads-identifier-benchmark", [BuildType.MAIN])
includeProject(":ads:ads-identifier-common", [BuildType.MAIN])
includeProject(":ads:ads-identifier-provider", [BuildType.MAIN])
includeProject(":ads:ads-identifier-provider:integration-tests:testapp", [BuildType.MAIN])
includeProject(":ads:ads-identifier-testing", [BuildType.MAIN])
includeProject(":ads:ads-identifier:integration-tests:testapp", [BuildType.MAIN])
includeProject(":annotation:annotation")
includeProject(":annotation:annotation-experimental")
includeProject(":annotation:annotation-experimental-lint")
includeProject(":annotation:annotation-experimental-lint-integration-tests", "annotation/annotation-experimental-lint/integration-tests")
includeProject(":annotation:annotation-sampled")
includeProject(":appcompat:appcompat", [BuildType.MAIN])
includeProject(":appcompat:appcompat-benchmark", [BuildType.MAIN])
includeProject(":appcompat:appcompat-lint", [BuildType.MAIN])
includeProject(":appcompat:appcompat-resources", [BuildType.MAIN])
includeProject(":appcompat:integration-tests:receive-content-testapp", [BuildType.MAIN])
includeProject(":appsearch:appsearch", [BuildType.MAIN])
includeProject(":appsearch:appsearch-builtin-types", [BuildType.MAIN])
includeProject(":appsearch:appsearch-compiler", "appsearch/compiler", [BuildType.MAIN])
includeProject(":appsearch:appsearch-debug-view", [BuildType.MAIN])
includeProject(":appsearch:appsearch-debug-view:samples", [BuildType.MAIN])
includeProject(":appsearch:appsearch-ktx", [BuildType.MAIN])
includeProject(":appsearch:appsearch-local-storage", [BuildType.MAIN])
includeProject(":appsearch:appsearch-platform-storage", [BuildType.MAIN])
includeProject(":appsearch:appsearch-test-util", [BuildType.MAIN])
includeProject(":arch:core:core-common", [BuildType.MAIN])
includeProject(":arch:core:core-runtime", [BuildType.MAIN])
includeProject(":arch:core:core-testing", [BuildType.MAIN])
includeProject(":asynclayoutinflater:asynclayoutinflater", [BuildType.MAIN])
includeProject(":autofill:autofill", [BuildType.MAIN])
includeProject(":benchmark:benchmark-benchmark", "benchmark/benchmark", [BuildType.MAIN, BuildType.COMPOSE])
includeProject(":benchmark:benchmark-common")
includeProject(":benchmark:benchmark-gradle-plugin", "benchmark/gradle-plugin", [BuildType.MAIN])
includeProject(":benchmark:benchmark-junit4")
includeProject(":benchmark:benchmark-macro", [BuildType.MAIN, BuildType.COMPOSE])
includeProject(":benchmark:benchmark-macro-junit4", [BuildType.MAIN, BuildType.COMPOSE])
includeProject(":benchmark:integration-tests:dry-run-benchmark", [BuildType.MAIN])
includeProject(":benchmark:integration-tests:macrobenchmark", [BuildType.MAIN])
includeProject(":benchmark:integration-tests:macrobenchmark-target", [BuildType.MAIN])
includeProject(":benchmark:integration-tests:test-module-sample", [BuildType.MAIN])
includeProject(":benchmark:integration-tests:startup-benchmark", [BuildType.MAIN])
includeProject(":biometric:biometric", [BuildType.MAIN])
includeProject(":biometric:biometric-ktx", [BuildType.MAIN])
includeProject(":biometric:biometric-ktx-samples", "biometric/biometric-ktx/samples", [BuildType.MAIN])
includeProject(":biometric:integration-tests:testapp", [BuildType.MAIN])
includeProject(":bluetooth:bluetooth", [BuildType.MAIN])
includeProject(":bluetooth:bluetooth-testing", [BuildType.MAIN])
includeProject(":browser:browser", [BuildType.MAIN])
includeProject(":buildSrc-tests", [BuildType.MAIN, BuildType.TOOLS])
// these projects intentionally fail to compile unless androidx.useMaxDepVersions is enabled
if (startParameter.projectProperties.containsKey("androidx.useMaxDepVersions")) {
includeProject(":buildSrc-tests:max-dep-versions:buildSrc-tests-max-dep-versions-dep", [BuildType.MAIN])
includeProject(":buildSrc-tests:max-dep-versions:buildSrc-tests-max-dep-versions-main", [BuildType.MAIN])
}
includeProject(":buildSrc-tests:project-subsets", [BuildType.MAIN])
includeProject(":camera:camera-camera2", [BuildType.MAIN])
includeProject(":camera:camera-camera2-pipe", [BuildType.MAIN])
includeProject(":camera:camera-camera2-pipe-integration", [BuildType.MAIN])
includeProject(":camera:camera-camera2-pipe-testing", [BuildType.MAIN])
includeProject(":camera:camera-core", [BuildType.MAIN])
includeProject(":camera:camera-effects", [BuildType.MAIN])
includeProject(":camera:camera-extensions", [BuildType.MAIN])
includeProject(":camera:camera-extensions-stub", [BuildType.MAIN])
includeProject(":camera:camera-lifecycle", [BuildType.MAIN])
includeProject(":camera:camera-mlkit-vision", [BuildType.MAIN])
includeProject(":camera:camera-viewfinder", [BuildType.MAIN])
includeProject(":camera:camera-testing", [BuildType.MAIN])
includeProject(":camera:camera-video", [BuildType.MAIN])
includeProject(":camera:camera-view", [BuildType.MAIN])
includeProject(":camera:integration-tests:camera-testapp-avsync", "camera/integration-tests/avsynctestapp", [BuildType.MAIN])
includeProject(":camera:integration-tests:camera-testapp-camera2-pipe", "camera/integration-tests/camerapipetestapp", [BuildType.MAIN])
includeProject(":camera:integration-tests:camera-testapp-core", "camera/integration-tests/coretestapp", [BuildType.MAIN])
includeProject(":camera:integration-tests:camera-testapp-diagnose", "camera/integration-tests/diagnosetestapp", [BuildType.MAIN])
includeProject(":camera:integration-tests:camera-testapp-extensions", "camera/integration-tests/extensionstestapp", [BuildType.MAIN])
includeProject(":camera:integration-tests:camera-testapp-viewfinder", "camera/integration-tests/viewfindertestapp", [BuildType.MAIN])
includeProject(":camera:integration-tests:camera-testapp-timing", "camera/integration-tests/timingtestapp", [BuildType.MAIN])
includeProject(":camera:integration-tests:camera-testapp-uiwidgets", "camera/integration-tests/uiwidgetstestapp", [BuildType.MAIN])
includeProject(":camera:integration-tests:camera-testapp-view", "camera/integration-tests/viewtestapp", [BuildType.MAIN])
includeProject(":camera:camera-testlib-extensions", [BuildType.MAIN])
includeProject(":car:app:app", [BuildType.MAIN])
includeProject(":car:app:app-automotive", [BuildType.MAIN])
includeProject(":car:app:app-projected", [BuildType.MAIN])
includeProject(":car:app:app-samples:helloworld-automotive", "car/app/app-samples/helloworld/automotive", [BuildType.MAIN])
includeProject(":car:app:app-samples:helloworld-common", "car/app/app-samples/helloworld/common", [BuildType.MAIN])
includeProject(":car:app:app-samples:helloworld-mobile", "car/app/app-samples/helloworld/mobile", [BuildType.MAIN])
includeProject(":car:app:app-samples:navigation-automotive", "car/app/app-samples/navigation/automotive", [BuildType.MAIN])
includeProject(":car:app:app-samples:navigation-common", "car/app/app-samples/navigation/common", [BuildType.MAIN])
includeProject(":car:app:app-samples:navigation-mobile", "car/app/app-samples/navigation/mobile", [BuildType.MAIN])
includeProject(":car:app:app-samples:places-automotive", "car/app/app-samples/places/automotive", [BuildType.MAIN])
includeProject(":car:app:app-samples:places-common", "car/app/app-samples/places/common", [BuildType.MAIN])
includeProject(":car:app:app-samples:places-mobile", "car/app/app-samples/places/mobile", [BuildType.MAIN])
includeProject(":car:app:app-samples:showcase-automotive", "car/app/app-samples/showcase/automotive", [BuildType.MAIN])
includeProject(":car:app:app-samples:showcase-common", "car/app/app-samples/showcase/common", [BuildType.MAIN])
includeProject(":car:app:app-samples:showcase-mobile", "car/app/app-samples/showcase/mobile", [BuildType.MAIN])
includeProject(":car:app:app-testing", [BuildType.MAIN])
includeProject(":cardview:cardview", [BuildType.MAIN])
includeProject(":collection:collection", [BuildType.MAIN, BuildType.KMP])
includeProject(":collection:collection-benchmark", [BuildType.MAIN, BuildType.KMP])
includeProject(":collection:collection-benchmark-js", [BuildType.MAIN, BuildType.KMP])
includeProject(":collection:collection-benchmark-native", [BuildType.MAIN, BuildType.KMP])
includeProject(":collection:collection-ktx", [BuildType.MAIN, BuildType.KMP])
includeProject(":collection:integration-tests:testapp", [BuildType.MAIN, BuildType.KMP])
includeProject(":compose:animation", [BuildType.COMPOSE])
includeProject(":compose:animation:animation", [BuildType.COMPOSE])
includeProject(":compose:animation:animation-lint", [BuildType.COMPOSE])
includeProject(":compose:animation:animation-core", [BuildType.COMPOSE])
includeProject(":compose:animation:animation-core-lint", [BuildType.COMPOSE])
includeProject(":compose:animation:animation-core:animation-core-benchmark", "compose/animation/animation-core/benchmark", [BuildType.COMPOSE])
includeProject(":compose:animation:animation-core:animation-core-samples", "compose/animation/animation-core/samples", [BuildType.COMPOSE])
includeProject(":compose:animation:animation-tooling-internal", [BuildType.COMPOSE])
includeProject(":compose:animation:animation:integration-tests:animation-demos", [BuildType.COMPOSE])
includeProject(":compose:animation:animation:animation-samples", "compose/animation/animation/samples", [BuildType.COMPOSE])
includeProject(":compose:animation:animation-graphics", [BuildType.COMPOSE])
includeProject(":compose:animation:animation-graphics:animation-graphics-samples", "compose/animation/animation-graphics/samples", [BuildType.COMPOSE])
includeProject(":compose:benchmark-utils", [BuildType.COMPOSE])
includeProject(":compose:benchmark-utils:benchmark-utils-benchmark", "compose/benchmark-utils/benchmark", [BuildType.COMPOSE])
includeProject(":compose:compiler:compiler", [BuildType.COMPOSE, BuildType.MAIN])
includeProject(":compose:compiler:compiler:integration-tests", [BuildType.COMPOSE])
includeProject(":compose:compiler:compiler-hosted", [BuildType.COMPOSE, BuildType.MAIN])
includeProject(":compose:compiler:compiler-hosted:integration-tests", [BuildType.COMPOSE])
includeProject(":compose:compiler:compiler-hosted:integration-tests:kotlin-compiler-repackaged", [BuildType.COMPOSE])
includeProject(":compose:compiler:compiler-daemon", [BuildType.COMPOSE])
includeProject(":compose:compiler:compiler-daemon:integration-tests", [BuildType.COMPOSE])
if (isMultiplatformEnabled()) {
includeProject(":compose:desktop", [BuildType.COMPOSE])
includeProject(":compose:desktop:desktop", [BuildType.COMPOSE])
includeProject(":compose:desktop:desktop:desktop-samples", "compose/desktop/desktop/samples", [BuildType.COMPOSE])
}
includeProject(":compose:foundation", [BuildType.COMPOSE])
includeProject(":compose:foundation:foundation", [BuildType.COMPOSE])
includeProject(":compose:foundation:foundation-benchmark", "compose/foundation/foundation/benchmark", [BuildType.COMPOSE])
includeProject(":compose:foundation:foundation-layout", [BuildType.COMPOSE])
includeProject(":compose:foundation:foundation-layout:foundation-layout-benchmark", "compose/foundation/foundation-layout/benchmark", [BuildType.COMPOSE])
includeProject(":compose:foundation:foundation-layout:integration-tests:foundation-layout-demos", "compose/foundation/foundation-layout/integration-tests/layout-demos", [BuildType.COMPOSE])
includeProject(":compose:foundation:foundation-layout:foundation-layout-samples", "compose/foundation/foundation-layout/samples", [BuildType.COMPOSE])
includeProject(":compose:foundation:foundation-lint", [BuildType.COMPOSE])
includeProject(":compose:foundation:foundation:integration-tests:foundation-demos", [BuildType.COMPOSE])
includeProject(":compose:foundation:foundation:foundation-samples", "compose/foundation/foundation/samples", [BuildType.COMPOSE])
includeProject(":compose:integration-tests", [BuildType.COMPOSE])
includeProject(":compose:integration-tests:demos", [BuildType.COMPOSE])
includeProject(":compose:integration-tests:demos:common", [BuildType.COMPOSE])
includeProject(":compose:integration-tests:docs-snippets", [BuildType.COMPOSE])
includeProject(":compose:integration-tests:macrobenchmark", [BuildType.COMPOSE])
includeProject(":compose:integration-tests:macrobenchmark-target", [BuildType.COMPOSE])
includeProject(":compose:integration-tests:material-catalog", [BuildType.COMPOSE])
includeProject(":compose:lint", [BuildType.COMPOSE])
includeProject(":compose:lint:internal-lint-checks", [BuildType.COMPOSE, BuildType.MAIN])
includeProject(":compose:lint:common", [BuildType.COMPOSE, BuildType.MAIN])
includeProject(":compose:lint:common-test", [BuildType.COMPOSE, BuildType.MAIN])
includeProject(":compose:material", [BuildType.COMPOSE])
includeProject(":compose:material3:material3", [BuildType.COMPOSE])
includeProject(":compose:material3:material3-lint", [BuildType.COMPOSE])
includeProject(":compose:material3:material3-window-size-class", [BuildType.COMPOSE])
includeProject(":compose:material3:material3-window-size-class:material3-window-size-class-samples", "compose/material3/material3-window-size-class/samples", [BuildType.COMPOSE])
includeProject(":compose:material:material", [BuildType.COMPOSE])
includeProject(":compose:material:material-benchmark", "compose/material/material/benchmark", [BuildType.COMPOSE])
includeProject(":compose:material:material-lint", [BuildType.COMPOSE])
includeProject(":compose:material:material-icons-core", [BuildType.COMPOSE])
includeProject(":compose:material:material-icons-core:material-icons-core-samples", "compose/material/material-icons-core/samples", [BuildType.COMPOSE])
includeProject(":compose:material:material-icons-extended", [BuildType.COMPOSE])
includeProject(":compose:material:material-icons-extended-filled", [BuildType.COMPOSE])
includeProject(":compose:material:material-icons-extended-outlined", [BuildType.COMPOSE])
includeProject(":compose:material:material-icons-extended-rounded", [BuildType.COMPOSE])
includeProject(":compose:material:material-icons-extended-sharp", [BuildType.COMPOSE])
includeProject(":compose:material:material-icons-extended-twotone", [BuildType.COMPOSE])
includeProject(":compose:material:material-ripple", [BuildType.COMPOSE])
includeProject(":compose:material:material:icons:generator", [BuildType.COMPOSE])
includeProject(":compose:material:material:integration-tests:material-demos", [BuildType.COMPOSE])
includeProject(":compose:material:material:integration-tests:material-catalog", [BuildType.COMPOSE])
includeProject(":compose:material3:material3:integration-tests:material3-demos", [BuildType.COMPOSE])
includeProject(":compose:material3:material3:integration-tests:material3-catalog", [BuildType.COMPOSE])
includeProject(":compose:material:material:material-samples", "compose/material/material/samples", [BuildType.COMPOSE])
includeProject(":compose:material3:material3:material3-samples", "compose/material3/material3/samples", [BuildType.COMPOSE])
includeProject(":compose:runtime", [BuildType.COMPOSE, BuildType.MAIN])
includeProject(":compose:runtime:runtime", [BuildType.COMPOSE, BuildType.MAIN])
includeProject(":compose:runtime:runtime-lint", [BuildType.COMPOSE, BuildType.MAIN])
includeProject(":compose:runtime:runtime-livedata", [BuildType.COMPOSE])
includeProject(":compose:runtime:runtime-livedata:runtime-livedata-samples", "compose/runtime/runtime-livedata/samples", [BuildType.COMPOSE])
includeProject(":compose:runtime:runtime-tracing", [BuildType.COMPOSE])
includeProject(":compose:runtime:runtime-rxjava2", [BuildType.COMPOSE])
includeProject(":compose:runtime:runtime-rxjava2:runtime-rxjava2-samples", "compose/runtime/runtime-rxjava2/samples", [BuildType.COMPOSE])
includeProject(":compose:runtime:runtime-rxjava3", [BuildType.COMPOSE])
includeProject(":compose:runtime:runtime-rxjava3:runtime-rxjava3-samples", "compose/runtime/runtime-rxjava3/samples", [BuildType.COMPOSE])
includeProject(":compose:runtime:runtime-saveable", [BuildType.COMPOSE])
includeProject(":compose:runtime:runtime-saveable-lint", [BuildType.COMPOSE])
includeProject(":compose:runtime:runtime-saveable:runtime-saveable-samples", "compose/runtime/runtime-saveable/samples", [BuildType.COMPOSE])
includeProject(":compose:runtime:runtime:benchmark", "compose/runtime/runtime/compose-runtime-benchmark", [BuildType.COMPOSE])
includeProject(":compose:runtime:runtime:integration-tests", [BuildType.COMPOSE])
includeProject(":compose:runtime:runtime:runtime-samples", "compose/runtime/runtime/samples", [BuildType.MAIN, BuildType.COMPOSE])
includeProject(":compose:test-utils", [BuildType.COMPOSE])
includeProject(":compose:ui", [BuildType.COMPOSE])
includeProject(":compose:ui:ui", [BuildType.COMPOSE])
includeProject(":compose:ui:ui-benchmark", "compose/ui/ui/benchmark", [BuildType.COMPOSE])
includeProject(":compose:ui:ui-android-stubs", [BuildType.COMPOSE])
includeProject(":compose:ui:ui-geometry", [BuildType.COMPOSE])
includeProject(":compose:ui:ui-graphics", [BuildType.COMPOSE])
includeProject(":compose:ui:ui-graphics-lint", [BuildType.COMPOSE])
includeProject(":compose:ui:ui-graphics:ui-graphics-benchmark", "compose/ui/ui-graphics/benchmark", [BuildType.COMPOSE])
includeProject(":compose:ui:ui-graphics:ui-graphics-benchmark:test", [BuildType.COMPOSE])
includeProject(":compose:ui:ui-graphics:ui-graphics-samples", "compose/ui/ui-graphics/samples", [BuildType.COMPOSE])
includeProject(":compose:ui:ui-inspection", [BuildType.COMPOSE])
includeProject(":compose:ui:ui-lint", [BuildType.COMPOSE])
includeProject(":compose:ui:ui-test", [BuildType.COMPOSE])
includeProject(":compose:ui:ui-test:ui-test-samples", "compose/ui/ui-test/samples", [BuildType.COMPOSE])
includeProject(":compose:ui:ui-test-font", [BuildType.COMPOSE])
includeProject(":compose:ui:ui-test-junit4", [BuildType.COMPOSE])
includeProject(":compose:ui:ui-test-manifest", [BuildType.COMPOSE])
includeProject(":compose:ui:ui-test-manifest-lint", [BuildType.COMPOSE])
includeProject(":compose:ui:ui-test-manifest:integration-tests:testapp", [BuildType.COMPOSE])
includeProject(":compose:ui:ui-text", [BuildType.COMPOSE])
includeProject(":compose:ui:ui-text-google-fonts", [BuildType.COMPOSE])
includeProject(":compose:ui:ui-text:ui-text-benchmark", "compose/ui/ui-text/benchmark", [BuildType.COMPOSE])
includeProject(":compose:ui:ui-text:ui-text-samples", "compose/ui/ui-text/samples", [BuildType.COMPOSE])
includeProject(":compose:ui:ui-tooling", [BuildType.COMPOSE])
includeProject(":compose:ui:ui-tooling-data", [BuildType.COMPOSE])
includeProject(":compose:ui:ui-tooling-preview", [BuildType.COMPOSE])
includeProject(":compose:ui:ui-unit", [BuildType.COMPOSE])
includeProject(":compose:ui:ui-unit:ui-unit-samples", "compose/ui/ui-unit/samples", [BuildType.COMPOSE])
includeProject(":compose:ui:ui-util", [BuildType.COMPOSE])
includeProject(":compose:ui:ui-viewbinding", [BuildType.COMPOSE])
includeProject(":compose:ui:ui-viewbinding:ui-viewbinding-samples", "compose/ui/ui-viewbinding/samples", [BuildType.COMPOSE])
includeProject(":compose:ui:ui:integration-tests:ui-demos", [BuildType.COMPOSE])
includeProject(":compose:ui:ui:ui-samples", "compose/ui/ui/samples", [BuildType.COMPOSE])
includeProject(":concurrent:concurrent-futures", [BuildType.MAIN])
includeProject(":concurrent:concurrent-futures-ktx", [BuildType.MAIN])
includeProject(":contentpager:contentpager", [BuildType.MAIN])
includeProject(":coordinatorlayout:coordinatorlayout", [BuildType.MAIN])
includeProject(":core:core", [BuildType.MAIN, BuildType.GLANCE, BuildType.MEDIA, BuildType.FLAN, BuildType.COMPOSE, BuildType.WEAR])
includeProject(":core:core:integration-tests:publishing", [BuildType.MAIN])
includeProject(":core:core-animation", [BuildType.MAIN])
includeProject(":core:core-animation-integration-tests:testapp", [BuildType.MAIN])
includeProject(":core:core-animation-testing", [BuildType.MAIN])
includeProject(":core:core-appdigest", [BuildType.MAIN])
includeProject(":core:core-google-shortcuts", [BuildType.MAIN])
includeProject(":core:core-i18n", [BuildType.MAIN])
includeProject(":core:core-ktx", [BuildType.MAIN, BuildType.GLANCE, BuildType.MEDIA, BuildType.FLAN, BuildType.COMPOSE, BuildType.WEAR])
includeProject(":core:core-performance", [BuildType.MAIN])
includeProject(":core:core-performance:core-performance-samples", "core/core-performance/samples", [BuildType.MAIN])
includeProject(":core:core-remoteviews", [BuildType.MAIN, BuildType.GLANCE])
includeProject(":core:core-remoteviews:integration-tests:demos", [BuildType.MAIN, BuildType.GLANCE])
includeProject(":core:core-splashscreen", [BuildType.MAIN])
includeProject(":core:core-splashscreen:core-splashscreen-samples", "core/core-splashscreen/samples", [BuildType.MAIN])
includeProject(":core:core-graphics-integration-tests:core-graphics-integration-tests", "core/core-graphics-integration-tests/testapp", [BuildType.MAIN])
includeProject(":core:core-role", [BuildType.MAIN])
includeProject(":core:uwb:uwb", [BuildType.MAIN])
includeProject(":cursoradapter:cursoradapter", [BuildType.MAIN])
includeProject(":customview:customview", [BuildType.MAIN])
includeProject(":customview:customview-poolingcontainer", [BuildType.MAIN, BuildType.COMPOSE])
includeProject(":datastore:datastore", [BuildType.MAIN, BuildType.KMP])
includeProject(":datastore:datastore-core", [BuildType.MAIN, BuildType.KMP])
includeProject(":datastore:datastore-core-okio", [BuildType.MAIN, BuildType.KMP])
includeProject(":datastore:datastore-compose-samples", [BuildType.COMPOSE])
includeProject(":datastore:datastore-multiprocess", [BuildType.MAIN, BuildType.KMP])
includeProject(":datastore:datastore-preferences", [BuildType.MAIN, BuildType.KMP])
includeProject(":datastore:datastore-preferences-core", [BuildType.MAIN, BuildType.KMP])
includeProject(":datastore:datastore-preferences-proto", [BuildType.MAIN, BuildType.KMP])
includeProject(":datastore:datastore-preferences-rxjava2", [BuildType.MAIN, BuildType.KMP])
includeProject(":datastore:datastore-preferences-rxjava3", [BuildType.MAIN, BuildType.KMP])
includeProject(":datastore:datastore-proto", [BuildType.MAIN, BuildType.KMP])
includeProject(":datastore:datastore-rxjava2", [BuildType.MAIN, BuildType.KMP])
includeProject(":datastore:datastore-rxjava3", [BuildType.MAIN, BuildType.KMP])
includeProject(":datastore:datastore-sampleapp", [BuildType.MAIN, BuildType.KMP])
includeProject(":documentfile:documentfile", [BuildType.MAIN])
includeProject(":draganddrop:draganddrop", [BuildType.MAIN])
includeProject(":draganddrop:integration-tests:sampleapp", [BuildType.MAIN])
includeProject(":drawerlayout:drawerlayout", [BuildType.MAIN])
includeProject(":dynamicanimation", [BuildType.MAIN])
includeProject(":dynamicanimation:dynamicanimation", [BuildType.MAIN])
includeProject(":dynamicanimation:dynamicanimation-ktx", [BuildType.MAIN])
includeProject(":emoji:emoji", [BuildType.MAIN])
includeProject(":emoji:emoji-appcompat", [BuildType.MAIN])
includeProject(":emoji:emoji-bundled", [BuildType.MAIN])
includeProject(":emoji2:emoji2", [BuildType.MAIN])
includeProject(":emoji2:emoji2-bundled", [BuildType.MAIN])
includeProject(":emoji2:emoji2-views", [BuildType.MAIN])
includeProject(":emoji2:emoji2-views-helper", [BuildType.MAIN])
includeProject(":emoji2:emoji2-benchmark", [BuildType.MAIN])
includeProject(":emoji2:integration-tests:init-disabled-macrobenchmark", [BuildType.MAIN])
includeProject(":emoji2:integration-tests:init-disabled-macrobenchmark-target", [BuildType.MAIN])
includeProject(":emoji2:integration-tests:init-enabled-macrobenchmark", [BuildType.MAIN])
includeProject(":emoji2:integration-tests:init-enabled-macrobenchmark-target", [BuildType.MAIN])
includeProject(":enterprise:enterprise-feedback", [BuildType.MAIN])
includeProject(":enterprise:enterprise-feedback-testing", [BuildType.MAIN])
includeProject(":exifinterface:exifinterface", [BuildType.MAIN])
includeProject(":fakeannotations", [BuildType.MAIN])
includeProject(":fragment:fragment", [BuildType.MAIN, BuildType.FLAN, BuildType.WEAR])
includeProject(":fragment:fragment-ktx", [BuildType.MAIN, BuildType.FLAN])
includeProject(":fragment:fragment-lint", [BuildType.MAIN, BuildType.FLAN, BuildType.WEAR])
includeProject(":fragment:fragment-testing", [BuildType.MAIN, BuildType.FLAN])
includeProject(":fragment:fragment-testing-lint", [BuildType.MAIN, BuildType.FLAN])
includeProject(":fragment:fragment-truth", [BuildType.MAIN, BuildType.FLAN])
includeProject(":fragment:integration-tests:testapp", [BuildType.MAIN, BuildType.FLAN])
includeProject(":glance:glance", [BuildType.MAIN, BuildType.GLANCE])
includeProject(":glance:glance-appwidget", [BuildType.MAIN, BuildType.GLANCE])
includeProject(":glance:glance-appwidget-preview", [BuildType.MAIN, BuildType.GLANCE])
includeProject(":glance:glance-appwidget-proto", [BuildType.MAIN, BuildType.GLANCE])
includeProject(":glance:glance-appwidget:integration-tests:demos", [BuildType.MAIN, BuildType.GLANCE])
includeProject(":glance:glance-appwidget:integration-tests:template-demos", [BuildType.MAIN, BuildType.GLANCE])
includeProject(":glance:glance-appwidget:glance-layout-generator", [BuildType.MAIN, BuildType.GLANCE])
includeProject(":glance:glance-wear-tiles:integration-tests:demos", [BuildType.MAIN, BuildType.GLANCE])
includeProject(":glance:glance-wear-tiles:integration-tests:template-demos", [BuildType.MAIN, BuildType.GLANCE])
includeProject(":glance:glance-wear-tiles", [BuildType.MAIN, BuildType.GLANCE])
includeProject(":gridlayout:gridlayout", [BuildType.MAIN])
includeProject(":health:health-connect-client", [BuildType.MAIN])
includeProject(":health:health-services-client", [BuildType.MAIN])
includeProject(":heifwriter:heifwriter", [BuildType.MAIN])
includeProject(":hilt:hilt-common", [BuildType.MAIN])
includeProject(":hilt:hilt-compiler", [BuildType.MAIN])
includeProject(":hilt:hilt-navigation", [BuildType.MAIN, BuildType.COMPOSE])
includeProject(":hilt:hilt-navigation-compose", [BuildType.COMPOSE])
includeProject(":hilt:hilt-navigation-compose-samples", "hilt/hilt-navigation-compose/samples", [BuildType.COMPOSE])
includeProject(":hilt:hilt-navigation-fragment", [BuildType.MAIN])
includeProject(":hilt:hilt-work", [BuildType.MAIN])
includeProject(":hilt:integration-tests:hilt-testapp-viewmodel", "hilt/integration-tests/viewmodelapp", [BuildType.MAIN])
includeProject(":hilt:integration-tests:hilt-testapp-worker", "hilt/integration-tests/workerapp", [BuildType.MAIN])
includeProject(":inspection:inspection", [BuildType.MAIN, BuildType.COMPOSE])
includeProject(":inspection:inspection-gradle-plugin", [BuildType.MAIN])
includeProject(":inspection:inspection-testing", [BuildType.MAIN, BuildType.COMPOSE])
includeProject(":interpolator:interpolator", [BuildType.MAIN])
includeProject(":leanback:leanback", [BuildType.MAIN])
includeProject(":leanback:leanback-grid", [BuildType.MAIN])
includeProject(":leanback:leanback-paging", [BuildType.MAIN])
includeProject(":leanback:leanback-preference", [BuildType.MAIN])
includeProject(":leanback:leanback-tab", [BuildType.MAIN])
includeProject(":lifecycle:integration-tests:incrementality", [BuildType.MAIN, BuildType.FLAN])
includeProject(":lifecycle:integration-tests:lifecycle-testapp", "lifecycle/integration-tests/testapp", [BuildType.MAIN, BuildType.FLAN])
includeProject(":lifecycle:integration-tests:lifecycle-testapp-kotlin", "lifecycle/integration-tests/kotlintestapp", [BuildType.MAIN, BuildType.FLAN])
includeProject(":lifecycle:lifecycle-common", [BuildType.MAIN, BuildType.FLAN, BuildType.WEAR, BuildType.COMPOSE])
includeProject(":lifecycle:lifecycle-common-java8", [BuildType.MAIN, BuildType.FLAN, BuildType.WEAR, BuildType.COMPOSE])
includeProject(":lifecycle:lifecycle-compiler", [BuildType.MAIN, BuildType.FLAN])
includeProject(":lifecycle:lifecycle-extensions", [BuildType.MAIN, BuildType.FLAN])
includeProject(":lifecycle:lifecycle-livedata", [BuildType.MAIN, BuildType.FLAN])
includeProject(":lifecycle:lifecycle-livedata-core", [BuildType.MAIN, BuildType.FLAN, BuildType.WEAR, BuildType.COMPOSE])
includeProject(":lifecycle:lifecycle-livedata-core-ktx", [BuildType.MAIN, BuildType.FLAN])
includeProject(":lifecycle:lifecycle-livedata-core-ktx-lint", [BuildType.MAIN, BuildType.FLAN])
includeProject(":lifecycle:lifecycle-livedata-core-truth", [BuildType.MAIN, BuildType.FLAN])
includeProject(":lifecycle:lifecycle-livedata-ktx", [BuildType.MAIN, BuildType.FLAN])
includeProject(":lifecycle:lifecycle-process", [BuildType.MAIN, BuildType.FLAN])
includeProject(":lifecycle:lifecycle-reactivestreams", [BuildType.MAIN, BuildType.FLAN])
includeProject(":lifecycle:lifecycle-reactivestreams-ktx", [BuildType.MAIN, BuildType.FLAN])
includeProject(":lifecycle:lifecycle-runtime", [BuildType.MAIN, BuildType.FLAN, BuildType.WEAR, BuildType.COMPOSE])
includeProject(":lifecycle:lifecycle-runtime-compose", [BuildType.COMPOSE])
includeProject(":lifecycle:lifecycle-runtime-compose:lifecycle-runtime-compose-samples", "lifecycle/lifecycle-runtime-compose/samples", [BuildType.COMPOSE])
includeProject(":lifecycle:lifecycle-runtime-compose:integration-tests:lifecycle-runtime-compose-demos", [BuildType.COMPOSE])
includeProject(":lifecycle:lifecycle-runtime-ktx", [BuildType.MAIN, BuildType.FLAN, BuildType.WEAR, BuildType.COMPOSE])
includeProject(":lifecycle:lifecycle-runtime-ktx-lint", [BuildType.MAIN, BuildType.FLAN, BuildType.WEAR, BuildType.COMPOSE])
includeProject(":lifecycle:lifecycle-runtime-testing", [BuildType.MAIN, BuildType.FLAN, BuildType.WEAR, BuildType.COMPOSE])
includeProject(":lifecycle:lifecycle-service", [BuildType.MAIN, BuildType.FLAN])
includeProject(":lifecycle:lifecycle-viewmodel", [BuildType.MAIN, BuildType.FLAN, BuildType.WEAR, BuildType.COMPOSE])
includeProject(":lifecycle:lifecycle-viewmodel-compose", [BuildType.COMPOSE])
includeProject(":lifecycle:lifecycle-viewmodel-compose:lifecycle-viewmodel-compose-samples", "lifecycle/lifecycle-viewmodel-compose/samples", [BuildType.COMPOSE])
includeProject(":lifecycle:lifecycle-viewmodel-compose:integration-tests:lifecycle-viewmodel-demos", [BuildType.COMPOSE])
includeProject(":lifecycle:lifecycle-viewmodel-ktx", [BuildType.MAIN, BuildType.FLAN, BuildType.COMPOSE])
includeProject(":lifecycle:lifecycle-viewmodel-savedstate", [BuildType.MAIN, BuildType.FLAN, BuildType.WEAR, BuildType.COMPOSE])
includeProject(":lint-checks")
includeProject(":lint-checks:integration-tests")
includeProject(":lint-demos:lint-demo-appcompat", [BuildType.MAIN])
includeProject(":loader:loader", [BuildType.MAIN])
includeProject(":loader:loader-ktx", [BuildType.MAIN])
includeProject(":media2:integration-tests:testapp", [BuildType.MAIN, BuildType.MEDIA])
includeProject(":media2:media2-common", [BuildType.MAIN, BuildType.MEDIA])
includeProject(":media2:media2-exoplayer", [BuildType.MAIN, BuildType.MEDIA])
includeProject(":media2:media2-player", [BuildType.MAIN, BuildType.MEDIA])
includeProject(":media2:media2-session", [BuildType.MAIN, BuildType.MEDIA])
includeProject(":media2:media2-widget", [BuildType.MAIN, BuildType.MEDIA])
includeProject(":media:media", [BuildType.MAIN, BuildType.MEDIA])
includeProject(":mediarouter:mediarouter", [BuildType.MAIN, BuildType.MEDIA])
includeProject(":mediarouter:mediarouter-testing", [BuildType.MAIN, BuildType.MEDIA])
includeProject(":metrics:metrics-performance", [BuildType.MAIN])
includeProject(":metrics:metrics-integration-tests", "metrics/integration-tests", [BuildType.MAIN])
includeProject(":metrics:metrics-integration-tests:janktest", "metrics/integration-tests/janktest", [BuildType.MAIN])
includeProject(":navigation:navigation-benchmark", [BuildType.MAIN, BuildType.FLAN])
includeProject(":navigation:navigation-common", [BuildType.MAIN, BuildType.FLAN, BuildType.COMPOSE])
includeProject(":navigation:navigation-common-ktx", [BuildType.MAIN, BuildType.FLAN, BuildType.COMPOSE])
includeProject(":navigation:navigation-common-lint", [BuildType.MAIN, BuildType.FLAN, BuildType.COMPOSE])
includeProject(":navigation:navigation-compose", [BuildType.COMPOSE])
includeProject(":navigation:navigation-compose:navigation-compose-samples", "navigation/navigation-compose/samples", [BuildType.COMPOSE])
includeProject(":navigation:navigation-compose:integration-tests:navigation-demos", [BuildType.COMPOSE])
includeProject(":navigation:navigation-compose-lint", [BuildType.COMPOSE])
includeProject(":navigation:navigation-dynamic-features-fragment", [BuildType.MAIN, BuildType.FLAN])
includeProject(":navigation:navigation-dynamic-features-runtime", [BuildType.MAIN, BuildType.FLAN])
includeProject(":navigation:navigation-fragment", [BuildType.MAIN, BuildType.FLAN])
includeProject(":navigation:navigation-fragment-ktx", [BuildType.MAIN, BuildType.FLAN])
includeProject(":navigation:navigation-integration-tests", "navigation/integration-tests", [BuildType.MAIN, BuildType.FLAN])
includeProject(":navigation:navigation-integration-tests:testapp", "navigation/integration-tests/testapp", [BuildType.MAIN, BuildType.FLAN])
includeProject(":navigation:navigation-runtime", [BuildType.MAIN, BuildType.FLAN, BuildType.COMPOSE])
includeProject(":navigation:navigation-runtime-lint", [BuildType.MAIN, BuildType.FLAN, BuildType.COMPOSE])
includeProject(":navigation:navigation-runtime-ktx", [BuildType.MAIN, BuildType.FLAN, BuildType.COMPOSE])
includeProject(":navigation:navigation-runtime-truth", [BuildType.MAIN, BuildType.FLAN])
includeProject(":navigation:navigation-safe-args-generator", [BuildType.MAIN, BuildType.FLAN])
includeProject(":navigation:navigation-safe-args-gradle-plugin", [BuildType.MAIN, BuildType.FLAN])
includeProject(":navigation:navigation-testing", [BuildType.MAIN, BuildType.FLAN, BuildType.COMPOSE])
includeProject(":navigation:navigation-ui", [BuildType.MAIN, BuildType.FLAN])
includeProject(":navigation:navigation-ui-ktx", [BuildType.MAIN, BuildType.FLAN])
includeProject(":paging:integration-tests:testapp", [BuildType.MAIN])
includeProject(":paging:paging-common", [BuildType.MAIN, BuildType.COMPOSE])
includeProject(":paging:paging-common-ktx", [BuildType.MAIN, BuildType.COMPOSE])
includeProject(":paging:paging-compose", [BuildType.COMPOSE])
includeProject(":paging:paging-compose:paging-compose-samples", "paging/paging-compose/samples", [BuildType.COMPOSE])
includeProject(":paging:paging-compose:integration-tests:paging-demos", [BuildType.COMPOSE])
includeProject(":paging:paging-guava", [BuildType.MAIN, BuildType.COMPOSE])
includeProject(":paging:paging-runtime", [BuildType.MAIN, BuildType.COMPOSE])
includeProject(":paging:paging-runtime-ktx", [BuildType.MAIN])
includeProject(":paging:paging-rxjava2", [BuildType.MAIN, BuildType.COMPOSE])
includeProject(":paging:paging-rxjava2-ktx", [BuildType.MAIN])
includeProject(":paging:paging-rxjava3", [BuildType.MAIN])
includeProject(":paging:paging-samples", "paging/samples", [BuildType.MAIN, BuildType.COMPOSE])
includeProject(":palette:palette", [BuildType.MAIN])
includeProject(":palette:palette-ktx", [BuildType.MAIN])
includeProject(":percentlayout:percentlayout", [BuildType.MAIN])
includeProject(":preference:preference", [BuildType.MAIN])
includeProject(":preference:preference-ktx", [BuildType.MAIN])
includeProject(":print:print", [BuildType.MAIN])
includeProject(":profileinstaller:profileinstaller", [BuildType.MAIN, BuildType.COMPOSE])
includeProject(":profileinstaller:integration-tests:init-macrobenchmark", [BuildType.MAIN])
includeProject(":profileinstaller:integration-tests:init-macrobenchmark-target", [BuildType.MAIN])
includeProject(":profileinstaller:profileinstaller-benchmark", [BuildType.MAIN])
includeProject(":recommendation:recommendation", [BuildType.MAIN])
includeProject(":recyclerview:recyclerview", [BuildType.MAIN, BuildType.COMPOSE])
includeProject(":recyclerview:recyclerview-benchmark", [BuildType.MAIN])
includeProject(":recyclerview:recyclerview-lint", [BuildType.MAIN, BuildType.COMPOSE])
includeProject(":recyclerview:recyclerview-selection", [BuildType.MAIN])
includeProject(":remotecallback:remotecallback", [BuildType.MAIN])
includeProject(":remotecallback:remotecallback-processor", "remotecallback/processor", [BuildType.MAIN])
includeProject(":resourceinspection:resourceinspection-annotation")
includeProject(":resourceinspection:resourceinspection-processor", [BuildType.MAIN])
includeProject(":room:integration-tests:room-incremental-annotation-processing", "room/integration-tests/incremental-annotation-processing", [BuildType.MAIN])
includeProject(":room:integration-tests:room-testapp", "room/integration-tests/testapp", [BuildType.MAIN])
includeProject(":room:integration-tests:room-testapp-autovalue", "room/integration-tests/autovaluetestapp", [BuildType.MAIN])
includeProject(":room:integration-tests:room-testapp-kotlin", "room/integration-tests/kotlintestapp", [BuildType.MAIN])
includeProject(":room:integration-tests:room-testapp-noappcompat", "room/integration-tests/noappcompattestapp", [BuildType.MAIN])
includeProject(":room:room-benchmark", "room/benchmark", [BuildType.MAIN])
includeProject(":room:room-common", [BuildType.MAIN, BuildType.COMPOSE])
includeProject(":room:room-compiler", [BuildType.MAIN, BuildType.COMPOSE])
includeProject(":room:room-compiler-processing", [BuildType.MAIN, BuildType.COMPOSE])
includeProject(":room:room-compiler-processing-testing", [BuildType.MAIN, BuildType.COMPOSE])
includeProject(":room:room-guava", [BuildType.MAIN])
includeProject(":room:room-ktx", [BuildType.MAIN, BuildType.COMPOSE])
includeProject(":room:room-migration", [BuildType.MAIN, BuildType.COMPOSE])
includeProject(":room:room-paging", [BuildType.MAIN, BuildType.COMPOSE])
includeProject(":room:room-paging-guava", [BuildType.MAIN])
includeProject(":room:room-paging-rxjava2", [BuildType.MAIN])
includeProject(":room:room-paging-rxjava3", [BuildType.MAIN])
includeProject(":room:room-runtime", [BuildType.MAIN, BuildType.COMPOSE])
includeProject(":room:room-runtime-lint", [BuildType.MAIN, BuildType.COMPOSE])
includeProject(":room:room-rxjava2", [BuildType.MAIN])
includeProject(":room:room-rxjava3", [BuildType.MAIN])
includeProject(":room:room-testing", [BuildType.MAIN])
includeProject(":savedstate:savedstate", [BuildType.MAIN, BuildType.COMPOSE, BuildType.FLAN, BuildType.WEAR])
includeProject(":savedstate:savedstate-ktx", [BuildType.MAIN, BuildType.COMPOSE, BuildType.FLAN, BuildType.WEAR])
includeProject(":security:security-app-authenticator", [BuildType.MAIN])
includeProject(":security:security-app-authenticator-testing", [BuildType.MAIN])
includeProject(":security:security-biometric", [BuildType.MAIN])
includeProject(":security:security-crypto", [BuildType.MAIN])
includeProject(":security:security-crypto-ktx", [BuildType.MAIN])
includeProject(":security:security-identity-credential", [BuildType.MAIN])
includeProject(":sharetarget:integration-tests:testapp", [BuildType.MAIN])
includeProject(":sharetarget:sharetarget", [BuildType.MAIN])
includeProject(":slice:slice-benchmark", [BuildType.MAIN])
includeProject(":slice:slice-builders", [BuildType.MAIN])
includeProject(":slice:slice-builders-ktx", [BuildType.MAIN])
includeProject(":slice:slice-core", [BuildType.MAIN])
includeProject(":slice:slice-remotecallback", [BuildType.MAIN])
includeProject(":slice:slice-test", [BuildType.MAIN])
includeProject(":slice:slice-view", [BuildType.MAIN])
includeProject(":slidingpanelayout:slidingpanelayout", [BuildType.MAIN, BuildType.FLAN])
includeProject(":sqlite:integration-tests:inspection-room-testapp", [BuildType.MAIN])
includeProject(":sqlite:integration-tests:inspection-sqldelight-testapp", [BuildType.MAIN])
includeProject(":sqlite:sqlite", [BuildType.MAIN, BuildType.COMPOSE])
includeProject(":sqlite:sqlite-framework", [BuildType.MAIN, BuildType.COMPOSE])
includeProject(":sqlite:sqlite-inspection", [BuildType.MAIN])
includeProject(":sqlite:sqlite-ktx", [BuildType.MAIN])
includeProject(":startup:integration-tests:first-library", [BuildType.MAIN])
includeProject(":startup:integration-tests:second-library", [BuildType.MAIN])
includeProject(":startup:integration-tests:test-app", [BuildType.MAIN])
includeProject(":startup:startup-runtime", [BuildType.MAIN])
includeProject(":startup:startup-runtime-lint", [BuildType.MAIN])
includeProject(":swiperefreshlayout:swiperefreshlayout", [BuildType.MAIN])
includeProject(":test:ext:junit-gtest", [BuildType.MAIN])
includeProject(":test:screenshot:screenshot")
includeProject(":test:screenshot:screenshot-proto", "test/screenshot/screenshot/proto")
includeProject(":text:text", [BuildType.COMPOSE])
includeProject(":tracing:tracing")
includeProject(":tracing:tracing-ktx")
includeProject(":tracing:tracing-perfetto")
includeProject(":tracing:tracing-perfetto-binary")
includeProject(":transition:transition", [BuildType.MAIN, BuildType.FLAN])
includeProject(":transition:transition-ktx", [BuildType.MAIN, BuildType.FLAN])
includeProject(":tvprovider:tvprovider", [BuildType.MAIN])
includeProject(":vectordrawable:integration-tests:testapp", [BuildType.MAIN])
includeProject(":vectordrawable:vectordrawable", [BuildType.MAIN])
includeProject(":vectordrawable:vectordrawable-animated", [BuildType.MAIN])
includeProject(":vectordrawable:vectordrawable-seekable", [BuildType.MAIN])
includeProject(":versionedparcelable:versionedparcelable", [BuildType.MAIN])
includeProject(":versionedparcelable:versionedparcelable-compiler", [BuildType.MAIN, BuildType.MEDIA, BuildType.FLAN, BuildType.COMPOSE, BuildType.WEAR])
includeProject(":viewpager2:integration-tests:testapp", [BuildType.MAIN])
includeProject(":viewpager2:integration-tests:targetsdk-tests", [BuildType.MAIN])
includeProject(":viewpager2:viewpager2", [BuildType.MAIN])
includeProject(":viewpager:viewpager", [BuildType.MAIN])
includeProject(":wear:wear", [BuildType.MAIN, BuildType.WEAR])
includeProject(":wear:benchmark:integration-tests:macrobenchmark-target", [BuildType.MAIN, BuildType.COMPOSE])
includeProject(":wear:benchmark:integration-tests:macrobenchmark", [BuildType.MAIN, BuildType.COMPOSE])
includeProject(":wear:compose:compose-foundation", [BuildType.COMPOSE])
includeProject(":wear:compose:compose-foundation-samples", "wear/compose/compose-foundation/samples", [BuildType.COMPOSE])
includeProject(":wear:compose:compose-material", [BuildType.COMPOSE])
includeProject(":wear:compose:compose-material-benchmark", "wear/compose/compose-material/benchmark", [BuildType.COMPOSE])
includeProject(":wear:compose:compose-material-samples", "wear/compose/compose-material/samples", [BuildType.COMPOSE])
includeProject(":wear:compose:compose-navigation", [BuildType.COMPOSE])
includeProject(":wear:compose:compose-navigation-samples", "wear/compose/compose-navigation/samples", [BuildType.COMPOSE])
includeProject(":wear:compose:integration-tests:demos", [BuildType.COMPOSE])
includeProject(":wear:compose:integration-tests:macrobenchmark", [BuildType.COMPOSE])
includeProject(":wear:compose:integration-tests:macrobenchmark-target", [BuildType.COMPOSE])
includeProject(":wear:compose:integration-tests:navigation", [BuildType.COMPOSE])
includeProject(":wear:wear-input", [BuildType.MAIN, BuildType.WEAR])
includeProject(":wear:wear-input-samples", "wear/wear-input/samples", [BuildType.MAIN, BuildType.WEAR])
includeProject(":wear:wear-input-testing", [BuildType.MAIN, BuildType.WEAR])
includeProject(":wear:wear-ongoing", [BuildType.MAIN, BuildType.WEAR])
includeProject(":wear:wear-phone-interactions", [BuildType.MAIN, BuildType.WEAR])
includeProject(":wear:wear-remote-interactions", [BuildType.MAIN, BuildType.WEAR])
includeProject(":wear:wear-samples-ambient", [BuildType.MAIN, BuildType.WEAR])
includeProject(":wear:tiles:tiles", [BuildType.MAIN, BuildType.WEAR])
includeProject(":wear:tiles:tiles-material", [BuildType.MAIN, BuildType.WEAR])
includeProject(":wear:tiles:tiles-proto", [BuildType.MAIN, BuildType.WEAR])
includeProject(":wear:tiles:tiles-renderer", [BuildType.MAIN, BuildType.WEAR])
includeProject(":wear:tiles:tiles-testing", [BuildType.MAIN, BuildType.WEAR])
includeProject(":wear:watchface:watchface", [BuildType.MAIN, BuildType.WEAR])
includeProject(":wear:watchface:watchface-complications", [BuildType.MAIN, BuildType.WEAR])
includeProject(":wear:watchface:watchface-complications-permission-dialogs-sample", [BuildType.MAIN, BuildType.WEAR])
includeProject(":wear:watchface:watchface-complications-data", [BuildType.MAIN, BuildType.WEAR])
includeProject(":wear:watchface:watchface-complications-data-source", [BuildType.MAIN, BuildType.WEAR])
includeProject(":wear:watchface:watchface-complications-data-source-ktx", [BuildType.MAIN, BuildType.WEAR])
includeProject(":wear:watchface:watchface-complications-data-source-samples", [BuildType.MAIN, BuildType.WEAR])
includeProject(":wear:watchface:watchface-complications-rendering", [BuildType.MAIN, BuildType.WEAR])
includeProject(":wear:watchface:watchface-client", [BuildType.MAIN, BuildType.WEAR])
includeProject(":wear:watchface:watchface-client-guava", [BuildType.MAIN, BuildType.WEAR])
includeProject(":wear:watchface:watchface-data", [BuildType.MAIN, BuildType.WEAR])
includeProject(":wear:watchface:watchface-editor", [BuildType.MAIN, BuildType.WEAR])
includeProject(":wear:watchface:watchface-editor-guava", [BuildType.MAIN, BuildType.WEAR])
includeProject(":wear:watchface:watchface-editor-samples", "wear/watchface/watchface-editor/samples", [BuildType.MAIN, BuildType.WEAR])
includeProject(":wear:watchface:watchface-guava", [BuildType.MAIN, BuildType.WEAR])
includeProject(":wear:watchface:watchface-samples", "wear/watchface/watchface/samples", [BuildType.MAIN, BuildType.WEAR])
includeProject(":wear:watchface:watchface-samples-app", "wear/watchface/watchface/samples/app", [BuildType.MAIN, BuildType.WEAR])
includeProject(":wear:watchface:watchface-samples-minimal", "wear/watchface/watchface/samples/minimal", [BuildType.MAIN, BuildType.WEAR])
includeProject(":wear:watchface:watchface-samples-minimal-complications", [BuildType.MAIN, BuildType.WEAR])
includeProject(":wear:watchface:watchface-samples-minimal-instances", [BuildType.MAIN, BuildType.WEAR])
includeProject(":wear:watchface:watchface-samples-minimal-style", [BuildType.MAIN, BuildType.WEAR])
includeProject(":wear:watchface:watchface-style", [BuildType.MAIN, BuildType.WEAR])
includeProject(":webkit:integration-tests:testapp", [BuildType.MAIN])
includeProject(":webkit:webkit", [BuildType.MAIN])
includeProject(":window:window", [BuildType.MAIN, BuildType.COMPOSE, BuildType.FLAN])
includeProject(":window:extensions:extensions", [BuildType.MAIN, BuildType.COMPOSE, BuildType.FLAN])
includeProject(":window:integration-tests:configuration-change-tests", [BuildType.MAIN])
includeProject(":window:sidecar:sidecar", [BuildType.MAIN, BuildType.COMPOSE, BuildType.FLAN])
includeProject(":window:window-java", [BuildType.MAIN])
includeProject(":window:window-rxjava2", [BuildType.MAIN])
includeProject(":window:window-rxjava3", [BuildType.MAIN])
includeProject(":window:window-samples", [BuildType.MAIN, BuildType.COMPOSE, BuildType.FLAN])
includeProject(":window:window-testing", [BuildType.MAIN, BuildType.COMPOSE, BuildType.FLAN])
includeProject(":work:integration-tests:testapp", [BuildType.MAIN])
includeProject(":work:work-benchmark", [BuildType.MAIN])
includeProject(":work:work-gcm", [BuildType.MAIN])
includeProject(":work:work-inspection", [BuildType.MAIN])
includeProject(":work:work-multiprocess", [BuildType.MAIN])
includeProject(":work:work-runtime", [BuildType.MAIN])
includeProject(":work:work-runtime-ktx", [BuildType.MAIN])
includeProject(":work:work-runtime-lint", "work/work-lint", [BuildType.MAIN])
includeProject(":work:work-rxjava2", [BuildType.MAIN])
includeProject(":work:work-rxjava3", [BuildType.MAIN])
includeProject(":work:work-testing", [BuildType.MAIN])
/////////////////////////////
//
// Samples
//
/////////////////////////////
File samplesRoot = new File(rootDir, "samples")
// Note: don't add new samples/ apps. Instead, Create
// <module>/integration-tests/testapp in the "Libraries" section above.
includeProject(":support-animation-demos", new File(samplesRoot, "SupportAnimationDemos"), [BuildType.MAIN])
includeProject(":support-content-demos", new File(samplesRoot, "SupportContentDemos"), [BuildType.MAIN])
includeProject(":support-emoji-demos", new File(samplesRoot, "SupportEmojiDemos"), [BuildType.MAIN])
includeProject(":support-leanback-demos", new File(samplesRoot, "SupportLeanbackDemos"), [BuildType.MAIN])
includeProject(":support-preference-demos", new File(samplesRoot, "SupportPreferenceDemos"), [BuildType.MAIN])
includeProject(":support-remotecallback-demos", new File(samplesRoot, "SupportRemoteCallbackDemos"), [BuildType.MAIN])
includeProject(":support-slices-demos", new File(samplesRoot, "SupportSliceDemos"), [BuildType.MAIN])
includeProject(":support-transition-demos", new File(samplesRoot, "SupportTransitionDemos"), [BuildType.MAIN])
includeProject(":support-v4-demos", new File(samplesRoot, "Support4Demos"), [BuildType.MAIN])
includeProject(":support-v7-demos", new File(samplesRoot, "Support7Demos"), [BuildType.MAIN])
includeProject(":support-wear-demos", new File(samplesRoot, "SupportWearDemos"), [BuildType.MAIN])
/////////////////////////////
//
// Testing libraries
//
/////////////////////////////
includeProject(":internal-testutils-common", "testutils/testutils-common", [BuildType.MAIN, BuildType.COMPOSE])
includeProject(":internal-testutils-runtime", "testutils/testutils-runtime", [BuildType.MAIN, BuildType.FLAN, BuildType.COMPOSE, BuildType.MEDIA, BuildType.WEAR])
includeProject(":internal-testutils-appcompat", "testutils/testutils-appcompat", [BuildType.MAIN])
includeProject(":internal-testutils-espresso", "testutils/testutils-espresso", [BuildType.MAIN, BuildType.COMPOSE])
includeProject(":internal-testutils-truth", "testutils/testutils-truth", [BuildType.MAIN, BuildType.GLANCE, BuildType.MEDIA, BuildType.FLAN, BuildType.COMPOSE, BuildType.WEAR, BuildType.KMP])
includeProject(":internal-testutils-ktx", "testutils/testutils-ktx")
includeProject(":internal-testutils-kmp", "testutils/testutils-kmp", [BuildType.MAIN, BuildType.KMP])
includeProject(":internal-testutils-macrobenchmark", "testutils/testutils-macrobenchmark", [BuildType.MAIN, BuildType.COMPOSE])
includeProject(":internal-testutils-navigation", "testutils/testutils-navigation", [BuildType.MAIN, BuildType.COMPOSE, BuildType.FLAN])
includeProject(":internal-testutils-paging", "testutils/testutils-paging", [BuildType.MAIN, BuildType.COMPOSE])
includeProject(":internal-testutils-gradle-plugin", "testutils/testutils-gradle-plugin", [BuildType.MAIN, BuildType.FLAN, BuildType.COMPOSE, BuildType.TOOLS])
includeProject(":internal-testutils-mockito", "testutils/testutils-mockito", [BuildType.MAIN, BuildType.MEDIA, BuildType.FLAN, BuildType.COMPOSE, BuildType.WEAR])
/////////////////////////////
//
// Applications and libraries for tests
//
/////////////////////////////
includeProject(":media:version-compat-tests:client",
"media/version-compat-tests/current/client", [BuildType.MAIN, BuildType.MEDIA])
includeProject(":media:version-compat-tests:client-previous",
"media/version-compat-tests/previous/client", [BuildType.MAIN, BuildType.MEDIA])
includeProject(":media:version-compat-tests:service",
"media/version-compat-tests/current/service", [BuildType.MAIN, BuildType.MEDIA])
includeProject(":media:version-compat-tests:service-previous",
"media/version-compat-tests/previous/service", [BuildType.MAIN, BuildType.MEDIA])
includeProject(":media:version-compat-tests:lib", [BuildType.MAIN, BuildType.MEDIA])
includeProject(":media2:media2-session:version-compat-tests:client",
"media2/media2-session/version-compat-tests/current/client", [BuildType.MAIN, BuildType.MEDIA])
includeProject(":media2:media2-session:version-compat-tests:client-previous",
"media2/media2-session/version-compat-tests/previous/client", [BuildType.MAIN, BuildType.MEDIA])
includeProject(":media2:media2-session:version-compat-tests:service",
"media2/media2-session/version-compat-tests/current/service", [BuildType.MAIN, BuildType.MEDIA])
includeProject(":media2:media2-session:version-compat-tests:service-previous",
"media2/media2-session/version-compat-tests/previous/service", [BuildType.MAIN, BuildType.MEDIA])
includeProject(":media2:media2-session:version-compat-tests:common", [BuildType.MAIN, BuildType.MEDIA])
/////////////////////////////
//
// External
//
/////////////////////////////
apply(from: "include-composite-deps.gradle")
File externalRoot = new File(rootDir, "../../external")
includeProject(":icing", new File(externalRoot, "icing"), [BuildType.MAIN])
includeProject(":icing:nativeLib", new File(externalRoot, "icing/nativeLib"), [BuildType.MAIN])
includeProject(":external:libyuv", [BuildType.MAIN])
includeProject(":noto-emoji-compat-font", new File(externalRoot, "noto-fonts/emoji-compat"), [BuildType.MAIN])
includeProject(":noto-emoji-compat-flatbuffers", new File(externalRoot, "noto-fonts/emoji-compat-flatbuffers"), [BuildType.MAIN])
if (isAllProjects()) {
includeProject(":docs-tip-of-tree")
includeProject(":docs-public")
}
// placeholder test project that has a test for each size to ensure that at least one test is run
// for each size and test runner is happy when there is nothing to test.
includeProject(":placeholder-tests")
includeProject(":fakeannotations")
/////////////////////////////
//
// Remote build cache set up
//
/////////////////////////////
apply from: new File("buildSrc/remoteBuildCache.gradle")