/////////////////////////////
//
// 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(":annotation", "annotations")
includeProject(":animation", "animation")
includeProject(":animation:testing", "animation/testing")
includeProject(":animation:integration-tests:testapp", "animation/integration-tests/testapp")
includeProject(":appcompat", "appcompat")
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(":benchmark", "benchmark")
includeProject(":biometric", "biometric")
includeProject(":browser", "browser")
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(":contentpager", "content")
includeProject(":coordinatorlayout", "coordinatorlayout")
includeProject(":core", "core")
includeProject(":core-ktx", "core/ktx")
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(":exifinterface", "exifinterface")
includeProject(":fragment", "fragment")
includeProject(":fragment-ktx", "fragment/ktx")
includeProject(":fragment-testing", "fragment/testing")
includeProject(":gridlayout", "gridlayout")
includeProject(":heifwriter", "heifwriter")
includeProject(":interpolator", "interpolator")
includeProject(":jetifier-core", "jetifier/jetifier/core")
includeProject(":jetifier-processor", "jetifier/jetifier/processor")
includeProject(":jetifier-gradle-plugin", "jetifier/jetifier/gradle-plugin")
includeProject(":jetifier-standalone", "jetifier/jetifier/standalone")
includeProject(":jetifier-preprocessor", "jetifier/jetifier/preprocessor")
includeProject(":leanback", "leanback")
includeProject(":leanback-preference", "leanback-preference")
includeProject(":lifecycle:integration-tests:testapp", "lifecycle/integration-tests/testapp")
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-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")
includeProject(":media2-exoplayer", "media2/media2-exoplayer")
includeProject(":media2-widget", "media2-widget")
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-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-compiler", "room/compiler")
includeProject(":room:room-coroutines", "room/coroutines")
includeProject(":room:room-guava", "room/guava")
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(":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(":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-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-ui", "legacy/core-ui")
includeProject(":legacy-support-core-utils", "legacy/core-utils")
includeProject(":legacy-support-v13", "legacy/v13")

/////////////////////////////
//
// 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-design-demos", new File(samplesRoot, "SupportDesignDemos"))
includeProject(":support-emoji-demos", new File(samplesRoot, "SupportEmojiDemos"))
includeProject(":support-leanback-demos", new File(samplesRoot, "SupportLeanbackDemos"))
includeProject(":support-media-demos", new File(samplesRoot, "SupportMediaDemos"))
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-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/version-compat-tests/current/client")
includeProject(":support-media2-test-service", "media2/version-compat-tests/current/service")
includeProject(":support-media2-test-common", "media2/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-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")
