diff options
author | 2018-04-26 05:49:02 -0700 | |
---|---|---|
committer | 2018-04-26 05:50:11 -0700 | |
commit | b7af835d026181ac48cd8b3419f65298d8cd7493 (patch) | |
tree | f322d354b1c57e7226a954b76185cf566a1f714e | |
parent | 1bbeadc2e3b9dd09909c0a47f86cd878aede1392 (diff) |
Expose cc_common.get_environment_variables and cc_common.get_command_line to skylark
This cl enabled skylark rules to compute the command line using feature
configuration, the same mechanism that native C++ rules use.
Working towards #4571.
RELNOTES: CppRules: C++ command lines and env variables for C++ actions can be
retrieved from feature configuration.
PiperOrigin-RevId: 194384637
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeatures.java | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeatures.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeatures.java index 5ff49ccfff..6a50a56753 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeatures.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeatures.java @@ -1209,6 +1209,12 @@ public class CcToolchainFeatures implements Serializable { * <p>TODO(b/32655571): Investigate cleanup once implicit iteration is not needed. Variables * instance could serve as a top level View used to expand all flag_groups. */ + @SkylarkModule( + name = "variables", + documented = false, + category = SkylarkModuleCategory.BUILTIN, + doc = "Class encapsulating build variables." + ) public abstract static class Variables { /** An empty variables instance. */ public static final Variables EMPTY = new Variables.Builder().build(); @@ -2016,7 +2022,7 @@ public class CcToolchainFeatures implements Serializable { return this; } - /** @return a new {@Variables} object. */ + /** @return a new {@link Variables} object. */ public Variables build() { if (stringVariablesMap.isEmpty() && variablesMap.size() == 1) { return new SingleVariables( @@ -2223,7 +2229,8 @@ public class CcToolchainFeatures implements Serializable { } /** @return the environment variables (key/value pairs) for the given {@code action}. */ - ImmutableMap<String, String> getEnvironmentVariables(String action, Variables variables) { + public ImmutableMap<String, String> getEnvironmentVariables( + String action, Variables variables) { ImmutableMap.Builder<String, String> envBuilder = ImmutableMap.builder(); for (Feature feature : enabledFeatures) { feature.expandEnvironment(action, variables, enabledFeatureNames, envBuilder); |