pluginManagement {
    repositories {
        maven {
            url = new File(buildscript.sourceFile.parent + "/../../../prebuilts/androidx/external").getCanonicalFile()
        }
    }
}

// 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) {
    settings.include(name)

    def file
    if (filePath instanceof String) {
        file = new File(rootDir, filePath)
    } else {
        file = filePath
    }
    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)
        }
    }
    project(name).projectDir = file
}

includeProject(":annotation", "../annotation")
includeProject(":annotation:annotation-experimental", "../annotation/annotation-experimental")
includeProject(":annotation:annotation-experimental-lint", "../annotation/annotation-experimental-lint")
includeProject(":annotation:annotation-experimental-lint-integration-tests", "../annotation/annotation-experimental-lint/integration-tests")
includeProject(":annotation:annotation-sampled", "../annotation/annotation-sampled")
includeProject(":benchmark", "../benchmark")
includeProject(":benchmark:benchmark-common", "../benchmark/common")
includeProject(":benchmark:benchmark-junit4", "../benchmark/junit4")
includeProject(":compose", "../compose")
includeProject(":compose:androidview", "../compose/androidview")
includeProject(":compose:androidview:androidview", "../compose/androidview/androidview")
includeProject(":compose:androidview:androidview:integration-tests:androidview-demos", "../compose/androidview/androidview/integration-tests/androidview-demos")
includeProject(":compose:animation", "../compose/animation")
includeProject(":compose:animation:animation", "../compose/animation/animation")
includeProject(":compose:animation:animation-core", "../compose/animation/animation-core")
includeProject(":compose:animation:animation-core:animation-core-samples", "../compose/animation/animation-core/samples")
includeProject(":compose:animation:animation:integration-tests:animation-demos", "../compose/animation/animation/integration-tests/animation-demos")
includeProject(":compose:animation:animation:animation-samples", "../compose/animation/animation/samples")
includeProject(":compose:compiler:compiler", "../compose/compiler/compiler")
includeProject(":compose:compiler:compiler-hosted", "../compose/compiler/compiler-hosted")
includeProject(":compose:compiler:compiler-hosted:integration-tests", "../compose/compiler/compiler-hosted/integration-tests")
if (!startParameter.projectProperties.containsKey('compose.desktop.disable')) {
    includeProject(":compose:desktop", "../compose/desktop")
    includeProject(":compose:desktop:desktop", "../compose/desktop/desktop")
    includeProject(":compose:desktop:desktop:desktop-samples", "../compose/desktop/desktop/samples")
}
includeProject(":compose:foundation", "../compose/foundation")
includeProject(":compose:foundation:foundation", "../compose/foundation/foundation")
includeProject(":compose:foundation:foundation-layout", "../compose/foundation/foundation-layout")
includeProject(":compose:foundation:foundation-layout:integration-tests:foundation-layout-demos", "../compose/foundation/foundation-layout/integration-tests/layout-demos")
includeProject(":compose:foundation:foundation-layout:foundation-layout-samples", "../compose/foundation/foundation-layout/samples")
includeProject(":compose:foundation:foundation-text", "../compose/foundation/foundation-text")
includeProject(":compose:foundation:foundation-text:integration-tests:foundation-text-demos", "../compose/foundation/foundation-text/integration-tests/ui-text-compose-demos")
includeProject(":compose:foundation:foundation-text:foundation-text-samples", "../compose/foundation/foundation-text/samples")
includeProject(":compose:foundation:foundation:integration-tests:foundation-demos", "../compose/foundation/foundation/integration-tests/foundation-demos")
includeProject(":compose:foundation:foundation:foundation-samples", "../compose/foundation/foundation/samples")
includeProject(":compose:integration-tests", "../compose/integration-tests")
includeProject(":compose:integration-tests:benchmark", "../compose/integration-tests/benchmark")
includeProject(":compose:integration-tests:demos", "../compose/integration-tests/demos")
includeProject(":compose:integration-tests:demos:common", "../compose/integration-tests/demos/common")
includeProject(":compose:internal-lint-checks", "../compose/internal-lint-checks")
includeProject(":compose:material", "../compose/material")
includeProject(":compose:material:material", "../compose/material/material")
includeProject(":compose:material:material-icons-core", "../compose/material/material-icons-core")
includeProject(":compose:material:material-icons-core:material-icons-core-samples", "../compose/material/material-icons-core/samples")
includeProject(":compose:material:material-icons-extended", "../compose/material/material-icons-extended")
includeProject(":compose:material:material:icons:generator", "../compose/material/material/icons/generator")
includeProject(":compose:material:material:integration-tests:material-demos", "../compose/material/material/integration-tests/material-demos")
includeProject(":compose:material:material:integration-tests:material-studies", "../compose/material/material/integration-tests/material-studies")
includeProject(":compose:material:material:material-samples", "../compose/material/material/samples")
includeProject(":compose:navigation:navigation", "../compose/navigation/navigation")
includeProject(":compose:navigation:navigation:navigation-samples", "../compose/navigation/navigation/samples")
includeProject(":compose:navigation:navigation:integration-tests:navigation-demos", "../compose/navigation/navigation/integration-tests/navigation-demos")
includeProject(":compose:runtime", "../compose/runtime")
includeProject(":compose:runtime:runtime", "../compose/runtime/runtime")
includeProject(":compose:runtime:runtime-dispatch", "../compose/runtime/runtime-dispatch")
includeProject(":compose:runtime:runtime-livedata", "../compose/runtime/runtime-livedata")
includeProject(":compose:runtime:runtime-livedata:runtime-livedata-samples", "../compose/runtime/runtime-livedata/samples")
includeProject(":compose:runtime:runtime-rxjava2", "../compose/runtime/runtime-rxjava2")
includeProject(":compose:runtime:runtime-rxjava2:runtime-rxjava2-samples", "../compose/runtime/runtime-rxjava2/samples")
includeProject(":compose:runtime:runtime-saved-instance-state", "../compose/runtime/runtime-saved-instance-state")
includeProject(":compose:runtime:runtime-saved-instance-state:runtime-saved-instance-state-samples", "../compose/runtime/runtime-saved-instance-state/samples")
includeProject(":compose:runtime:runtime:benchmark", "../compose/runtime/runtime/compose-runtime-benchmark")
includeProject(":compose:runtime:runtime:runtime-samples", "../compose/runtime/runtime/samples")
includeProject(":compose:test-utils", "../compose/test-utils")
includeProject(":compose:ui", "../compose/ui")
includeProject(":compose:ui:ui", "../compose/ui/ui")
includeProject(":compose:ui:ui-android-stubs", "../compose/ui/ui-android-stubs")
includeProject(":compose:ui:ui-geometry", "../compose/ui/ui-geometry")
includeProject(":compose:ui:ui-graphics", "../compose/ui/ui-graphics")
includeProject(":compose:ui:ui-graphics:ui-graphics-samples", "../compose/ui/ui-graphics/samples")
includeProject(":compose:ui:ui-test-font", "../compose/ui/ui-test-font")
includeProject(":compose:ui:ui-text", "../compose/ui/ui-text")
includeProject(":compose:ui:ui-text-android", "../compose/ui/ui-text-android")
includeProject(":compose:ui:ui-text:ui-text-samples", "../compose/ui/ui-text/samples")
includeProject(":compose:ui:ui-unit", "../compose/ui/ui-unit")
includeProject(":compose:ui:ui-unit:ui-unit-samples", "../compose/ui/ui-unit/samples")
includeProject(":compose:ui:ui-util", "../compose/ui/ui-util")
includeProject(":compose:ui:ui-viewbinding", "../compose/ui/ui-viewbinding")
includeProject(":compose:ui:ui-viewbinding:ui-viewbinding-samples", "../compose/ui/ui-viewbinding/samples")
includeProject(":compose:ui:ui:integration-tests:ui-demos", "../compose/ui/ui/integration-tests/ui-demos")
includeProject(":compose:ui:ui:ui-samples", "../compose/ui/ui/samples")
includeProject(":lint-checks", "../lint-checks")
includeProject(":test-screenshot", "../test/screenshot")
includeProject(":tracing", "../tracing")
includeProject(":tracing:tracing", "../tracing/tracing")
includeProject(":tracing:tracing-ktx", "../tracing/tracing-ktx")
includeProject(":ui", "ui")
includeProject(":ui:ui-animation-tooling-internal", "ui-animation-tooling-internal")
includeProject(":ui:ui-test", "ui-test")
includeProject(":ui:ui-tooling", "ui-tooling")

/////////////////////////////
//
// External
//
/////////////////////////////

apply(from: "../include-composite-deps.gradle")

if (!startParameter.projectProperties.containsKey('android.injected.invoked.from.ide')) {
    // we don't need it in ide, so we don't configure it there
    includeProject(":docs-fake", "../docs-fake")
    includeProject(":docs-runner", "../docs-runner")
}

// 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", "../placeholder-tests")

includeProject(":fakeannotations", "../fakeannotations")

/////////////////////////////
//
// Remote build cache set up
//
/////////////////////////////

apply from: new File('buildSrc/remoteBuildCache.gradle')
