From a690e355e1a954c4b3dec9a1b5a24aa43d0bde04 Mon Sep 17 00:00:00 2001 From: Lukacs Berki Date: Thu, 7 May 2015 13:07:10 +0000 Subject: Add a mechanism for configuration fragments to add arbitrary rules to the defaults package. -- MOS_MIGRATED_REVID=93023029 --- .../devtools/build/lib/analysis/config/BuildOptions.java | 9 +++++++++ .../devtools/build/lib/analysis/config/DefaultsPackage.java | 8 ++++++++ .../devtools/build/lib/analysis/config/FragmentOptions.java | 13 +++++++++++++ 3 files changed, 30 insertions(+) diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildOptions.java b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildOptions.java index 8b44f65470..cee3ceb0e1 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildOptions.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildOptions.java @@ -156,6 +156,15 @@ public final class BuildOptions implements Cloneable, Serializable { return result.build(); } + ImmutableList getDefaultsRules() { + ImmutableList.Builder result = ImmutableList.builder(); + for (FragmentOptions fragment : fragmentOptionsMap.values()) { + result.addAll(fragment.getDefaultsRules()); + } + + return result.build(); + } + /** * The cache key for the options collection. Recomputes cache key every time it's called. */ diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/DefaultsPackage.java b/src/main/java/com/google/devtools/build/lib/analysis/config/DefaultsPackage.java index 7d92bcedd7..e04633011f 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/config/DefaultsPackage.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/config/DefaultsPackage.java @@ -15,6 +15,7 @@ package com.google.devtools.build.lib.analysis.config; import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import com.google.devtools.build.lib.syntax.Label; @@ -93,9 +94,11 @@ public final class DefaultsPackage { * The map from entries to their values. */ private ImmutableMap> values; + private ImmutableList rules; private DefaultsPackage(BuildOptions buildOptions) { values = buildOptions.getDefaultsLabels(); + rules = buildOptions.getDefaultsRules(); } private String labelsToString(Set