aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeatures.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeatures.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeatures.java35
1 files changed, 25 insertions, 10 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 b6d9e10c94..f04220c62c 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
@@ -782,14 +782,14 @@ public class CcToolchainFeatures implements Serializable {
/**
* Builder for {@code Variables}.
*/
- static class Builder {
+ public static class Builder {
private final ImmutableMap.Builder<String, String> variables = ImmutableMap.builder();
private final ImmutableMap.Builder<String, Sequence> expandables = ImmutableMap.builder();
/**
* Add a variable that expands {@code name} to {@code value}.
*/
- Builder addVariable(String name, String value) {
+ public Builder addVariable(String name, String value) {
variables.put(name, value);
return this;
}
@@ -797,7 +797,7 @@ public class CcToolchainFeatures implements Serializable {
/**
* Add all variables in a map.
*/
- Builder addAllVariables(Map<String, String> variableMap) {
+ public Builder addAllVariables(Map<String, String> variableMap) {
variables.putAll(variableMap);
return this;
}
@@ -805,7 +805,7 @@ public class CcToolchainFeatures implements Serializable {
/**
* Add a nested sequence that expands {@code name} recursively.
*/
- Builder addSequence(String name, Sequence sequence) {
+ public Builder addSequence(String name, Sequence sequence) {
expandables.put(name, sequence);
return this;
}
@@ -814,7 +814,7 @@ public class CcToolchainFeatures implements Serializable {
* Add a variable that expands a flag group containing a reference to {@code name} for each
* entry in {@code values}.
*/
- Builder addSequenceVariable(String name, Collection<String> values) {
+ public Builder addSequenceVariable(String name, Collection<String> values) {
ValueSequence.Builder sequenceBuilder = new ValueSequence.Builder();
for (String value : values) {
sequenceBuilder.addValue(value);
@@ -831,6 +831,14 @@ public class CcToolchainFeatures implements Serializable {
}
/**
+ * A group of extra {@code Variable} instances, packaged as logic for adding to a
+ * {@code Builder}
+ */
+ public interface VariablesExtension {
+ void addVariables(Builder builder);
+ }
+
+ /**
* Interface for a set of variables visible during an expansion of a variable.
*/
interface View {
@@ -1271,14 +1279,14 @@ public class CcToolchainFeatures implements Serializable {
/**
* Given a list of {@code requestedFeatures}, returns all features that are enabled by the
* toolchain configuration.
- *
+ *
* <p>A requested feature will not be enabled if the toolchain does not support it (which may
* depend on other requested features).
- *
+ *
* <p>Additional features will be enabled if the toolchain supports them and they are implied by
* requested features.
*/
- FeatureConfiguration getFeatureConfiguration(Collection<String> requestedFeatures) {
+ public FeatureConfiguration getFeatureConfiguration(Collection<String> requestedFeatures) {
return configurationCache.getUnchecked(requestedFeatures);
}
@@ -1289,8 +1297,15 @@ public class CcToolchainFeatures implements Serializable {
}
/**
- * Convenience method taking a variadic string argument list for testing.
- */
+ * Given a list of {@code requestedFeatures}, returns all features that are enabled by the
+ * toolchain configuration.
+ *
+ * <p>A requested feature will not be enabled if the toolchain does not support it (which may
+ * depend on other requested features).
+ *
+ * <p>Additional features will be enabled if the toolchain supports them and they are implied by
+ * requested features.
+ */
public FeatureConfiguration getFeatureConfiguration(String... requestedFeatures) {
return getFeatureConfiguration(Arrays.asList(requestedFeatures));
}