diff options
author | 2017-07-14 19:08:17 +0200 | |
---|---|---|
committer | 2017-07-17 10:10:56 +0200 | |
commit | 2bd6aa7ce56a8f8f110ed72a4c726fdce7d4da93 (patch) | |
tree | 144e692f0942394f73bfd16854dc81866f14ede1 /src/main/java/com/google/devtools/build/lib/analysis/config | |
parent | c2665efd387e73b369d156bc0459311ca19fce2a (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.java | 16 |
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. |