/////////////////////////////
//
// Buildscript utils
//
/////////////////////////////


// 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(filePath)
    } else {
        file = filePath
    }
    project(name).projectDir = file
}


/////////////////////////////
//
// Libraries
//
/////////////////////////////

includeProject(":activity", "activity")
includeProject(":activity-ktx", "activity/ktx")
includeProject(":activity:integration-tests:testapp", "activity/integration-tests/testapp")
includeProject(":ads-identifier", "ads/ads-identifier")
includeProject(":annotation", "annotations")
includeProject(":animation", "animation")
includeProject(":animation:testing", "animation/testing")
includeProject(":animation:integration-tests:testapp", "animation/integration-tests/testapp")
includeProject(":appcompat", "appcompat")
includeProject(":appcompat-benchmark", "appcompat/benchmark")
includeProject(":appcompat:appcompat-resources", "appcompat/resources")
includeProject(":arch:core-common", "arch/core-common")
includeProject(":arch:core-testing", "arch/core-testing")
includeProject(":arch:core-runtime", "arch/core-runtime")
includeProject(":asynclayoutinflater", "asynclayoutinflater")
includeProject(":autofill", "autofill")
includeProject(":benchmark", "benchmark")
includeProject(":benchmark:benchmark-gradle-plugin", "benchmark/gradle-plugin")
includeProject(":biometric", "biometric")
includeProject(":browser", "browser")
includeProject(":camera:camera-camera2", "camera/camera2")
includeProject(":camera:camera-core", "camera/core")
includeProject(":camera:camera-extensions", "camera/extensions")
includeProject(":camera:camera-extensions-stub", "camera/extensions-stub")
includeProject(":camera:camera-testing", "camera/testing")
includeProject(":camera:camera-view", "camera/view")
includeProject(":camera:integration-tests:camera-testapp-core", "camera/integration-tests/coretestapp")
includeProject(":camera:integration-tests:camera-testapp-extensions", "camera/integration-tests/extensionstestapp")
includeProject(":camera:integration-tests:camera-testapp-timing", "camera/integration-tests/timingtestapp")
includeProject(":camera:integration-tests:camera-testapp-view", "camera/integration-tests/viewtestapp")
includeProject(":camera:integration-tests:camera-testlib-extensions", "camera/integration-tests/extensionstestlib")
includeProject(":car", "car/core")
includeProject(":car-cluster", "car/cluster")
includeProject(":car-moderator", "car/moderator")
includeProject(":cardview", "cardview")
includeProject(":collection", "collection")
includeProject(":collection-ktx", "collection/ktx")
includeProject(":concurrent:concurrent-futures", "concurrent/futures")
includeProject(":concurrent-listenablefuture-callback", "concurrent/listenablefuture-callback")
includeProject(":concurrent-listenablefuture", "concurrent/listenablefuture")
includeProject(":contentpager", "content")
includeProject(":coordinatorlayout", "coordinatorlayout")
includeProject(":core", "core")
includeProject(":core-ktx", "core/ktx")
includeProject(":core-role", "core/core-role")
includeProject(":cursoradapter", "cursoradapter")
includeProject(":customview", "customview")
includeProject(":documentfile", "documentfile")
includeProject(":drawerlayout", "drawerlayout")
includeProject(":dynamicanimation", "dynamic-animation")
includeProject(":dynamicanimation-ktx", "dynamic-animation/ktx")
includeProject(":emoji", "emoji/core")
includeProject(":emoji-bundled", "emoji/bundled")
includeProject(":emoji-appcompat", "emoji/appcompat")
includeProject(":enterprise-feedback", "enterprise/feedback")
includeProject(":enterprise-feedback-testing", "enterprise/feedback/testing")
includeProject(":exifinterface", "exifinterface")
includeProject(":fragment", "fragment")
includeProject(":fragment-ktx", "fragment/ktx")
includeProject(":fragment-testing", "fragment/testing")
includeProject(":fakeannotations", "fakeannotations")
includeProject(":gridlayout", "gridlayout")
includeProject(":heifwriter", "heifwriter")
includeProject(":interpolator", "interpolator")
includeProject(":jetifier-core", "jetifier/jetifier/core")
includeProject(":jetifier-processor", "jetifier/jetifier/processor")
includeProject(":jetifier-standalone", "jetifier/jetifier/standalone")
includeProject(":jetifier-preprocessor", "jetifier/jetifier/preprocessor")
includeProject(":leanback", "leanback")
includeProject(":leanback-preference", "leanback-preference")
includeProject(":lifecycle:integration-tests:incrementality", "lifecycle/integration-tests/incrementality")
includeProject(":lifecycle:integration-tests:lifecycle-testapp", "lifecycle/integration-tests/testapp")
includeProject(":lifecycle:integration-tests:lifecycle-testapp-kotlin", "lifecycle/integration-tests/kotlintestapp")
includeProject(":lifecycle:lifecycle-common", "lifecycle/common")
includeProject(":lifecycle:lifecycle-common-java8", "lifecycle/common-java8")
includeProject(":lifecycle:lifecycle-compiler", "lifecycle/compiler")
includeProject(":lifecycle:lifecycle-extensions", "lifecycle/extensions")
includeProject(":lifecycle:lifecycle-livedata-core", "lifecycle/livedata-core")
includeProject(":lifecycle:lifecycle-livedata-core-ktx", "lifecycle/livedata-core/ktx")
includeProject(":lifecycle:lifecycle-livedata", "lifecycle/livedata")
includeProject(":lifecycle:lifecycle-livedata-ktx", "lifecycle/livedata/ktx")
includeProject(":lifecycle:lifecycle-process", "lifecycle/process")
includeProject(":lifecycle:lifecycle-reactivestreams", "lifecycle/reactivestreams")
includeProject(":lifecycle:lifecycle-reactivestreams-ktx", "lifecycle/reactivestreams/ktx")
includeProject(":lifecycle:lifecycle-runtime", "lifecycle/runtime")
includeProject(":lifecycle:lifecycle-runtime-ktx", "lifecycle/runtime/ktx")
includeProject(":lifecycle:lifecycle-runtime-ktx-lint", "lifecycle/runtime/ktx/lint")
includeProject(":lifecycle:lifecycle-service", "lifecycle/service")
includeProject(":lifecycle:lifecycle-viewmodel", "lifecycle/viewmodel")
includeProject(":lifecycle:lifecycle-viewmodel-ktx", "lifecycle/viewmodel/ktx")
includeProject(":lifecycle:lifecycle-viewmodel-savedstate","lifecycle/viewmodel-savedstate")
includeProject(":loader", "loader")
includeProject(":localbroadcastmanager", "localbroadcastmanager")
includeProject(":media", "media")
includeProject(":media2:media2-common", "media2/common")
includeProject(":media2:media2-player", "media2/player")
includeProject(":media2:media2-session", "media2/session")
includeProject(":media2:media2-widget", "media2/widget")
includeProject(":media2:media2-exoplayer", "media2/media2-exoplayer")
includeProject(":media2:integration-tests:testapp", "media2/integration-tests/testapp")
includeProject(":mediarouter", "mediarouter")
includeProject(":navigation:navigation-benchmark", "navigation/benchmark")
includeProject(":navigation:navigation-common", "navigation/common")
includeProject(":navigation:navigation-common-ktx", "navigation/common/ktx")
includeProject(":navigation:navigation-runtime", "navigation/runtime/")
includeProject(":navigation:navigation-runtime-ktx", "navigation/runtime/ktx")
includeProject(":navigation:navigation-testing", "navigation/testing")
includeProject(":navigation:navigation-fragment", "navigation/fragment")
includeProject(":navigation:navigation-fragment-ktx", "navigation/fragment/ktx")
includeProject(":navigation:navigation-ui", "navigation/ui")
includeProject(":navigation:navigation-ui-ktx", "navigation/ui/ktx")
includeProject(":navigation:navigation-integration-tests:testapp", "navigation/integration-tests/testapp")
includeProject(":navigation:navigation-safe-args-generator", "navigation/safe-args-generator")
includeProject(":navigation:navigation-safe-args-gradle-plugin", "navigation/safe-args-gradle-plugin")
includeProject(":paging:integration-tests:testapp", "paging/integration-tests/testapp")
includeProject(":paging:paging-common", "paging/common")
includeProject(":paging:paging-common-ktx", "paging/common/ktx")
includeProject(":paging:paging-runtime", "paging/runtime")
includeProject(":paging:paging-runtime-ktx", "paging/runtime/ktx")
includeProject(":paging:paging-rxjava2", "paging/rxjava2")
includeProject(":paging:paging-rxjava2-ktx", "paging/rxjava2/ktx")
includeProject(":palette", "palette")
includeProject(":palette-ktx", "palette/ktx")
includeProject(":percentlayout", "percent")
includeProject(":preference", "preference")
includeProject(":preference-ktx", "preference/ktx")
includeProject(":print", "print")
includeProject(":recommendation", "recommendation")
includeProject(":recyclerview", "recyclerview/recyclerview")
includeProject(":recyclerview:recyclerview-benchmark", "recyclerview/benchmark")
includeProject(":recyclerview-selection", "recyclerview/selection")
includeProject(":room:integration-tests:room-incremental-annotation-processing", "room/integration-tests/incremental-annotation-processing")
includeProject(":room:integration-tests:room-testapp-noappcompat", "room/integration-tests/noappcompattestapp")
includeProject(":room:integration-tests:room-testapp-autovalue", "room/integration-tests/autovaluetestapp")
includeProject(":room:integration-tests:room-testapp", "room/integration-tests/testapp")
includeProject(":room:integration-tests:room-testapp-kotlin", "room/integration-tests/kotlintestapp")
includeProject(":room:room-benchmark", "room/benchmark")
includeProject(":room:room-common", "room/common")
includeProject(":room:room-common-java8", "room/common-java8")
includeProject(":room:room-compiler", "room/compiler")
includeProject(":room:room-guava", "room/guava")
includeProject(":room:room-ktx", "room/ktx")
includeProject(":room:room-migration", "room/migration")
includeProject(":room:room-runtime", "room/runtime")
includeProject(":room:room-rxjava2", "room/rxjava2")
includeProject(":room:room-testing", "room/testing")
includeProject(":remotecallback-processor", "remotecallback/processor")
includeProject(":remotecallback", "remotecallback")
includeProject(":versionedparcelable-annotation", "versionedparcelable/annotation")
includeProject(":versionedparcelable", "versionedparcelable")
includeProject(":savedstate", "savedstate")
includeProject(":security:security-crypto", "security/crypto")
includeProject(":security:security-identity-credential", "security/identity-credential")
includeProject(":sharetarget", "sharetarget")
includeProject(":sharetarget:integration-tests:testapp", "sharetarget/integration-tests/testapp")
includeProject(":slice-core", "slices/core")
includeProject(":slice-view", "slices/view")
includeProject(":slice-builders", "slices/builders")
includeProject(":slice-test", "slices/test")
includeProject(":slice-builders-ktx", "slices/builders/ktx")
includeProject(":slice-benchmark", "slices/benchmark")
includeProject(":slidingpanelayout", "slidingpanelayout")
includeProject(":sqlite:sqlite", "persistence/db")
includeProject(":sqlite:sqlite-ktx", "persistence/db/ktx")
includeProject(":sqlite:sqlite-framework", "persistence/db-framework")
includeProject(":swiperefreshlayout", "swiperefreshlayout")
includeProject(":test-screenshot-proto", "test/screenshot/proto")
includeProject(":textclassifier", "textclassifier")
includeProject(":textclassifier:integration-tests:testapp", "textclassifier/integration-tests/testapp")
includeProject(":transition", "transition")
includeProject(":tvprovider", "tv-provider")
includeProject(":vectordrawable", "graphics/drawable/static")
includeProject(":vectordrawable-animated", "graphics/drawable/animated")
includeProject(":viewpager", "viewpager")
includeProject(":viewpager2", "viewpager2")
includeProject(":viewpager2:integration-tests:testapp", "viewpager2/integration-tests/testapp")
includeProject(":wear", "wear")
includeProject(":webkit", "webkit")
includeProject(":webkit:integration-tests:testapp", "webkit/integration-tests/testapp")
includeProject(":work:work-runtime", "work/workmanager")
includeProject(":work:work-gcm", "work/workmanager-gcm")
includeProject(":work:work-runtime-ktx", "work/workmanager-ktx")
includeProject(":work:work-rxjava2", "work/workmanager-rxjava2")
includeProject(":work:work-testing", "work/workmanager-testing")
includeProject(":work:integration-tests:testapp", "work/integration-tests/testapp")

/////////////////////////////
//
// Legacy
//
/////////////////////////////

includeProject(":legacy-support-core-utils", "legacy/core-utils")

/////////////////////////////
//
// 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"))
includeProject(":support-app-navigation", new File(samplesRoot, "SupportAppNavigation"))
includeProject(":support-biometric-demos", new File(samplesRoot, "BiometricDemos"))
includeProject(":support-car-demos", new File(samplesRoot, "SupportCarDemos"))
includeProject(":support-content-demos", new File(samplesRoot, "SupportContentDemos"))
includeProject(":support-emoji-demos", new File(samplesRoot, "SupportEmojiDemos"))
includeProject(":support-leanback-demos", new File(samplesRoot, "SupportLeanbackDemos"))
includeProject(":support-percent-demos", new File(samplesRoot, "SupportPercentDemos"))
includeProject(":support-preference-demos", new File(samplesRoot, "SupportPreferenceDemos"))
includeProject(":support-remotecallback-demos", new File(samplesRoot, "SupportRemoteCallbackDemos"))
includeProject(":support-slices-demos", new File(samplesRoot, "SupportSliceDemos"))
includeProject(":support-transition-demos", new File(samplesRoot, "SupportTransitionDemos"))
includeProject(":support-vector-drawable-demos", new File(samplesRoot, "SupportVectorDrawableDemos"))
includeProject(":support-v4-demos", new File(samplesRoot, "Support4Demos"))
includeProject(":support-v7-demos", new File(samplesRoot, "Support7Demos"))
includeProject(":support-v13-demos", new File(samplesRoot, "Support13Demos"))
includeProject(":support-wear-demos", new File(samplesRoot, "SupportWearDemos"))

/////////////////////////////
//
// Testing libraries
//
/////////////////////////////

includeProject(":internal-testutils", "testutils")
includeProject(":internal-testutils-common", "testutils-common")
includeProject(":internal-testutils-ktx", "testutils-ktx")

/////////////////////////////
//
// Applications and libraries for tests
//
/////////////////////////////

includeProject(":support-media-compat-test-client", "media/version-compat-tests/current/client")
includeProject(":support-media-compat-test-client-previous", "media/version-compat-tests/previous/client")
includeProject(":support-media-compat-test-service", "media/version-compat-tests/current/service")
includeProject(":support-media-compat-test-service-previous", "media/version-compat-tests/previous/service")
includeProject(":support-media-compat-test-lib", "media/version-compat-tests/lib")

includeProject(":support-media2-test-client", "media2/session/version-compat-tests/current/client")
includeProject(":support-media2-test-service", "media2/session/version-compat-tests/current/service")
includeProject(":support-media2-test-common", "media2/session/version-compat-tests/common")

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

apply(from: "include-composite-deps.gradle")
File externalRoot = new File(rootDir, "../../external")

includeProject(":noto-emoji-compat", new File(externalRoot, "noto-fonts/emoji-compat"))
includeProject(":webview-support-interfaces", new File(externalRoot, "webview_support_interfaces"))

// fake project which is used for docs generation from prebuilts
// we need real android project to generate R.java, aidl etc files that mentioned in sources
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")
