diff options
author | Chris Parsons <cparsons@google.com> | 2017-02-14 21:21:02 +0000 |
---|---|---|
committer | Dmitry Lomov <dslomov@google.com> | 2017-02-15 10:04:33 +0000 |
commit | d6e66308ae5014bc737789248a8eab73c4b7db51 (patch) | |
tree | 582735b0a0e2d46502b7f93db0f78ebc51a410e3 /src/main/java/com/google/devtools/build/lib/rules/objc/CompilationAttributes.java | |
parent | fee192875bf8bd0923953bf4f71e9b5561e2f224 (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.java | 32 |
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; } |