aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis/config
diff options
context:
space:
mode:
authorGravatar tomlu <tomlu@google.com>2017-07-14 19:08:17 +0200
committerGravatar Jakob Buchgraber <buchgr@google.com>2017-07-17 10:10:56 +0200
commit2bd6aa7ce56a8f8f110ed72a4c726fdce7d4da93 (patch)
tree144e692f0942394f73bfd16854dc81866f14ede1 /src/main/java/com/google/devtools/build/lib/analysis/config
parentc2665efd387e73b369d156bc0459311ca19fce2a (diff)
Reserve certain action mnemonics so they can't be used from Skylark.
If a reserved mnemonic is used, it is mangled. RELNOTES: PiperOrigin-RevId: 161970885
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis/config')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java
index ca8d5f93e0..ba82963582 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java
@@ -232,6 +232,11 @@ public final class BuildConfiguration implements BuildEvent {
public PatchTransition topLevelConfigurationHook(Target toTarget) {
return null;
}
+
+ /** Returns a reserved set of action mnemonics. These cannot be used from a Skylark action. */
+ public ImmutableSet<String> getReservedActionMnemonics() {
+ return ImmutableSet.of();
+ }
}
private static final Label convertLabel(String input) throws OptionsParsingException {
@@ -1185,6 +1190,7 @@ public final class BuildConfiguration implements BuildEvent {
private final ImmutableMap<String, Class<? extends Fragment>> skylarkVisibleFragments;
private final RepositoryName mainRepositoryName;
private final DynamicTransitionMapper dynamicTransitionMapper;
+ private final ImmutableSet<String> reservedActionMnemonics;
/**
* Directories in the output tree.
@@ -1579,6 +1585,12 @@ public final class BuildConfiguration implements BuildEvent {
checksum = Fingerprint.md5Digest(buildOptions.computeCacheKey());
hashCode = computeHashCode();
+
+ ImmutableSet.Builder<String> reservedActionMnemonics = ImmutableSet.builder();
+ for (Fragment fragment : fragments.values()) {
+ reservedActionMnemonics.addAll(fragment.getReservedActionMnemonics());
+ }
+ this.reservedActionMnemonics = reservedActionMnemonics.build();
}
/**
@@ -2765,6 +2777,10 @@ public final class BuildConfiguration implements BuildEvent {
return skylarkVisibleFragments.keySet();
}
+ public ImmutableSet<String> getReservedActionMnemonics() {
+ return reservedActionMnemonics;
+ }
+
/**
* Returns an extra transition that should apply to top-level targets in this
* configuration. Returns null if no transition is needed.