aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build
diff options
context:
space:
mode:
authorGravatar lberki <lberki@google.com>2018-04-26 01:42:10 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-04-26 01:43:50 -0700
commit8e7b0eff16a7ae7f911c3592815076ffe1270953 (patch)
treeeb57d30f8cfdc5583829ddadb0ccf8facda7cee4 /src/main/java/com/google/devtools/build
parent1441a3a387b5576da232cb038c91bde2e01cd9ff (diff)
Add an extra argument to CcCompilationHelper#fromCommon() that contains additional compiler options.
RELNOTES: None. PiperOrigin-RevId: 194363080
Diffstat (limited to 'src/main/java/com/google/devtools/build')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationHelper.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibrary.java11
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()