aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar hlopko <hlopko@google.com>2018-04-26 05:49:02 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-04-26 05:50:11 -0700
commitb7af835d026181ac48cd8b3419f65298d8cd7493 (patch)
treef322d354b1c57e7226a954b76185cf566a1f714e
parent1bbeadc2e3b9dd09909c0a47f86cd878aede1392 (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.java11
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);