aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainRule.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainRule.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainRule.java19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainRule.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainRule.java
index f7414408f8..1fad6472b6 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainRule.java
@@ -58,6 +58,7 @@ public final class CcToolchainRule implements RuleDefinition {
@Override
public RuleClass build(Builder builder, RuleDefinitionEnvironment env) {
+ final Label zipper = env.getToolsLabel("//tools/zip:zipper");
return builder
.setUndocumented()
.requiresConfigurationFragments(CppConfiguration.class)
@@ -85,6 +86,24 @@ public final class CcToolchainRule implements RuleDefinition {
.cfg(HOST)
.singleArtifact()
.value(env.getToolsLabel("//tools/cpp:link_dynamic_library")))
+ .add(
+ attr(":zipper", LABEL)
+ .cfg(HOST)
+ .singleArtifact()
+ .value(
+ new LateBoundLabel<BuildConfiguration>() {
+ @Override
+ public Label resolve(
+ Rule rule, AttributeMap attributes, BuildConfiguration configuration) {
+ CppConfiguration cppConfiguration =
+ configuration.getFragment(CppConfiguration.class);
+ if (cppConfiguration.isLLVMOptimizedFdo()) {
+ return zipper;
+ } else {
+ return null;
+ }
+ }
+ }))
.add(attr(":libc_top", LABEL).value(LIBC_TOP))
.add(
attr(":lipo_context_collector", LABEL)