Support for -Pandroidx.projects property
as an alternate to ANDROIDX_PROJECTS
to facilitate spawning several GradleBuild's, each with a different value of this property
Bug: 180012150
Test: this is tested by the commit after it
Test: Treehugger runs busytown/androidx.sh
Change-Id: Ib3c732a1ff5db8f8bddadfeedfee942aa48ca767
diff --git a/settings.gradle b/settings.gradle
index 203f192..6e1bd55 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -30,12 +30,28 @@
WEAR,
}
-private static Set<BuildType> createRequestedFilter() {
+private String getRequestedProjectSubsetName() {
+ if (startParameter.projectProperties.containsKey("androidx.projects")) {
+ return startParameter.projectProperties["androidx.projects"].toUpperCase()
+ }
+ if (System.getenv().containsKey("ANDROIDX_PROJECTS")) {
+ return System.getenv()["ANDROIDX_PROJECTS"].toUpperCase()
+ }
+ return null
+}
+
+boolean isAllProjects() {
+ String projectSubsetName = getRequestedProjectSubsetName()
+ return requestedProjectSubsetName == null || requestedProjectSubsetName == "ALL"
+}
+
+private Set<BuildType> createRequestedFilter() {
Set<BuildType> filter = new HashSet<>()
- if (!System.getenv().containsKey("ANDROIDX_PROJECTS")) return null
- String[] requestedFilter = System.getenv("ANDROIDX_PROJECTS").split(",")
+ String projectSubsetName = getRequestedProjectSubsetName()
+ if (projectSubsetName == null) return null
+ String[] requestedFilter = projectSubsetName.split(",")
for (String requestedType : requestedFilter) {
- switch (requestedType.toUpperCase()) {
+ switch (requestedType) {
case "MAIN":
filter.add(BuildType.MAIN)
break
@@ -74,7 +90,8 @@
* Note that null value means all the projects should be included
*/
@Field
-Set<BuildType> requestedFilter = createRequestedFilter()
+Set<BuildType> requestedFilter
+requestedFilter = createRequestedFilter()
boolean shouldIncludeForFilter(List<BuildType> includeList) {
if (includeList.empty) return true
@@ -655,11 +672,6 @@
includeProject(":icing:nativeLib", new File(externalRoot, "icing/nativeLib"), [BuildType.MAIN])
includeProject(":noto-emoji-compat", new File(externalRoot, "noto-fonts/emoji-compat"), [BuildType.MAIN])
-static boolean isAllProjects() {
- if (!System.getenv().containsKey("ANDROIDX_PROJECTS")) return true
- return System.getenv("ANDROIDX_PROJECTS") == "ALL"
-}
-
if (isAllProjects()) {
includeProject(":docs-tip-of-tree", "docs-tip-of-tree")
includeProject(":docs-public", "docs-public")