diff options
author | lberki <lberki@google.com> | 2018-04-26 01:42:10 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-04-26 01:43:50 -0700 |
commit | 8e7b0eff16a7ae7f911c3592815076ffe1270953 (patch) | |
tree | eb57d30f8cfdc5583829ddadb0ccf8facda7cee4 | |
parent | 1441a3a387b5576da232cb038c91bde2e01cd9ff (diff) |
Add an extra argument to CcCompilationHelper#fromCommon() that contains additional compiler options.
RELNOTES: None.
PiperOrigin-RevId: 194363080
3 files changed, 14 insertions, 9 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java index bd97ed5712..d84045cf28 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java @@ -232,7 +232,7 @@ public abstract class CcBinary implements RuleConfiguredTargetFactory { CcCompilationHelper compilationHelper = new CcCompilationHelper( ruleContext, semantics, featureConfiguration, ccToolchain, fdoSupport) - .fromCommon(common) + .fromCommon(common, /* additionalCopts= */ImmutableList.of()) .addSources(common.getSources()) .addDeps(ImmutableList.of(CppHelper.mallocForTarget(ruleContext))) .setFake(fake) diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationHelper.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationHelper.java index 7389401859..d186abba4f 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationHelper.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationHelper.java @@ -327,8 +327,10 @@ public final class CcCompilationHelper { } /** Sets fields that overlap for cc_library and cc_binary rules. */ - public CcCompilationHelper fromCommon(CcCommon common) { - setCopts(common.getCopts()); + public CcCompilationHelper fromCommon(CcCommon common, ImmutableList<String> additionalCopts) { + Preconditions.checkNotNull(additionalCopts); + + setCopts(Iterables.concat(common.getCopts(), additionalCopts)); addDefines(common.getDefines()); addDeps(ruleContext.getPrerequisites("deps", Mode.TARGET)); addLooseIncludeDirs(common.getLooseIncludeDirs()); @@ -530,8 +532,8 @@ public final class CcCompilationHelper { return this; } - public CcCompilationHelper setCopts(ImmutableList<String> copts) { - this.copts = Preconditions.checkNotNull(copts); + public CcCompilationHelper setCopts(Iterable<String> copts) { + this.copts = ImmutableList.copyOf(copts); return this; } diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibrary.java index 0499950d9a..3399f0845a 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibrary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibrary.java @@ -97,10 +97,12 @@ public abstract class CcLibrary implements RuleConfiguredTargetFactory { RuleConfiguredTargetBuilder builder = new RuleConfiguredTargetBuilder(context); LinkTargetType staticLinkType = getStaticLinkType(context); boolean linkStatic = context.attributes().get("linkstatic", Type.BOOLEAN); - init(semantics, context, builder, staticLinkType, - /*neverLink =*/ false, + init(semantics, context, builder, + /* additionalCopts= */ImmutableList.of(), + staticLinkType, + /* neverLink= */ false, linkStatic, - /*addDynamicRuntimeInputArtifactsToRunfiles =*/ false); + /* addDynamicRuntimeInputArtifactsToRunfiles= */ false); return builder.build(); } @@ -108,6 +110,7 @@ public abstract class CcLibrary implements RuleConfiguredTargetFactory { CppSemantics semantics, RuleContext ruleContext, RuleConfiguredTargetBuilder targetBuilder, + ImmutableList<String> additionalCopts, LinkTargetType staticLinkType, boolean neverLink, boolean linkStatic, @@ -140,7 +143,7 @@ public abstract class CcLibrary implements RuleConfiguredTargetFactory { CcCompilationHelper compilationHelper = new CcCompilationHelper( ruleContext, semantics, featureConfiguration, ccToolchain, fdoSupport) - .fromCommon(common) + .fromCommon(common, additionalCopts) .addSources(common.getSources()) .addPublicHeaders(common.getHeaders()) .enableCompileProviders() |