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

/////////////////////////////
//
// 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")
}

// dumb 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(":dumb-tests", "../dumb-tests")

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

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

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