aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationAttributes.java
diff options
context:
space:
mode:
authorGravatar Chris Parsons <cparsons@google.com>2017-02-14 21:21:02 +0000
committerGravatar Dmitry Lomov <dslomov@google.com>2017-02-15 10:04:33 +0000
commitd6e66308ae5014bc737789248a8eab73c4b7db51 (patch)
tree582735b0a0e2d46502b7f93db0f78ebc51a410e3 /src/main/java/com/google/devtools/build/lib/rules/objc/CompilationAttributes.java
parentfee192875bf8bd0923953bf4f71e9b5561e2f224 (diff)
Avoid putting objc linkopts and copts in Set, as their order and duplicate-args need to be preserved.
(Example: "-iquote foo -iquote bar" is a legitimate series of flags) -- PiperOrigin-RevId: 147512419 MOS_MIGRATED_REVID=147512419
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/objc/CompilationAttributes.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/CompilationAttributes.java32
1 files changed, 14 insertions, 18 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationAttributes.java b/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationAttributes.java
index bbb0493f64..4120af16fb 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationAttributes.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationAttributes.java
@@ -47,8 +47,8 @@ final class CompilationAttributes {
private final NestedSetBuilder<Artifact> textualHdrs = NestedSetBuilder.stableOrder();
private final NestedSetBuilder<PathFragment> includes = NestedSetBuilder.stableOrder();
private final NestedSetBuilder<PathFragment> sdkIncludes = NestedSetBuilder.stableOrder();
- private final NestedSetBuilder<String> copts = NestedSetBuilder.stableOrder();
- private final NestedSetBuilder<String> linkopts = NestedSetBuilder.stableOrder();
+ private final ImmutableList.Builder<String> copts = ImmutableList.builder();
+ private final ImmutableList.Builder<String> linkopts = ImmutableList.builder();
private final NestedSetBuilder<CppModuleMap> moduleMapsForDirectDeps =
NestedSetBuilder.stableOrder();
private final NestedSetBuilder<SdkFramework> sdkFrameworks = NestedSetBuilder.stableOrder();
@@ -107,16 +107,16 @@ final class CompilationAttributes {
/**
* Adds compile-time options.
*/
- public Builder addCopts(NestedSet<String> copts) {
- this.copts.addTransitive(copts);
+ public Builder addCopts(Iterable<String> copts) {
+ this.copts.addAll(copts);
return this;
}
/**
* Adds link-time options.
*/
- public Builder addLinkopts(NestedSet<String> linkopts) {
- this.linkopts.addTransitive(linkopts);
+ public Builder addLinkopts(Iterable<String> linkopts) {
+ this.linkopts.addAll(linkopts);
return this;
}
@@ -256,15 +256,11 @@ final class CompilationAttributes {
private static void addCompileOptionsFromRuleContext(Builder builder, RuleContext ruleContext) {
if (ruleContext.attributes().has("copts", Type.STRING_LIST)) {
- NestedSetBuilder<String> copts = NestedSetBuilder.stableOrder();
- copts.addAll(ruleContext.getTokenizedStringListAttr("copts"));
- builder.addCopts(copts.build());
+ builder.addCopts(ruleContext.getTokenizedStringListAttr("copts"));
}
if (ruleContext.attributes().has("linkopts", Type.STRING_LIST)) {
- NestedSetBuilder<String> linkopts = NestedSetBuilder.stableOrder();
- linkopts.addAll(ruleContext.getTokenizedStringListAttr("linkopts"));
- builder.addLinkopts(linkopts.build());
+ builder.addLinkopts(ruleContext.getTokenizedStringListAttr("linkopts"));
}
}
@@ -313,8 +309,8 @@ final class CompilationAttributes {
private final NestedSet<SdkFramework> weakSdkFrameworks;
private final NestedSet<String> sdkDylibs;
private final Optional<PathFragment> packageFragment;
- private final NestedSet<String> copts;
- private final NestedSet<String> linkopts;
+ private final ImmutableList<String> copts;
+ private final ImmutableList<String> linkopts;
private final NestedSet<CppModuleMap> moduleMapsForDirectDeps;
private final boolean enableModules;
@@ -327,8 +323,8 @@ final class CompilationAttributes {
NestedSet<SdkFramework> weakSdkFrameworks,
NestedSet<String> sdkDylibs,
Optional<PathFragment> packageFragment,
- NestedSet<String> copts,
- NestedSet<String> linkopts,
+ ImmutableList<String> copts,
+ ImmutableList<String> linkopts,
NestedSet<CppModuleMap> moduleMapsForDirectDeps,
boolean enableModules) {
this.hdrs = hdrs;
@@ -419,14 +415,14 @@ final class CompilationAttributes {
/**
* Returns the compile-time options.
*/
- public NestedSet<String> copts() {
+ public ImmutableList<String> copts() {
return this.copts;
}
/**
* Returns the link-time options.
*/
- public NestedSet<String> linkopts() {
+ public ImmutableList<String> linkopts() {
return this.linkopts;
}