// see ../playground-common/README.md for details on how this works
pluginManagement {
    includeBuild "../playground-common/playground-plugin"
}
plugins {
    id "playground"
}

rootProject.name = "appcompat-playground"

playground {
    setupPlayground("..")
    selectProjectsFromAndroidX({ name ->
        if (name.startsWith(":appcompat")) return true
        if (name == ":internal-testutils-appcompat") return true
        if (name == ":internal-testutils-runtime") return true
        // Transitive dependencies of internal-testutils-appcompat
        if (name.startsWith(":annotation:annotation-experimental")) return true
        return false
    })
}
