aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java
index fa0f18f287..80824014ca 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java
@@ -15,6 +15,7 @@
package com.google.devtools.build.lib.rules.cpp;
import com.google.common.annotations.VisibleForTesting;
+import com.google.common.base.Function;
import com.google.common.base.Verify;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.ImmutableList;
@@ -239,6 +240,7 @@ public class CppConfiguration extends BuildConfiguration.Fragment {
private final String targetLibc;
private final String targetOS;
private final LipoMode lipoMode;
+ private final boolean convertLipoToThinLto;
private final PathFragment crosstoolTopPathFragment;
private final String abi;
@@ -307,6 +309,7 @@ public class CppConfiguration extends BuildConfiguration.Fragment {
private final ImmutableMap<String, String> additionalMakeVariables;
private final CppOptions cppOptions;
+ private final Function<String, String> cpuTransformer;
// The dynamic mode for linking.
private final DynamicMode dynamicMode;
@@ -334,6 +337,7 @@ public class CppConfiguration extends BuildConfiguration.Fragment {
this.desiredCpu = Preconditions.checkNotNull(params.commonOptions.cpu);
this.targetCpu = toolchain.getTargetCpu();
this.lipoMode = cppOptions.getLipoMode();
+ this.convertLipoToThinLto = cppOptions.convertLipoToThinLto;
this.targetSystemName = toolchain.getTargetSystemName();
this.targetLibc = toolchain.getTargetLibc();
this.targetOS = toolchain.getCcTargetOs();
@@ -345,6 +349,7 @@ public class CppConfiguration extends BuildConfiguration.Fragment {
this.useLLVMCoverageMap = params.commonOptions.useLLVMCoverageMapFormat;
this.lipoContextCollector = cppOptions.isLipoContextCollector();
this.crosstoolTopPathFragment = crosstoolTop.getPackageIdentifier().getPathUnderExecRoot();
+ this.cpuTransformer = params.cpuTransformer;
try {
this.staticRuntimeLibsLabel =
@@ -842,6 +847,11 @@ public class CppConfiguration extends BuildConfiguration.Fragment {
return crosstoolFile;
}
+ /** Returns the transformer that should be applied to cpu names in toolchain selection. */
+ public Function<String, String> getCpuTransformer() {
+ return cpuTransformer;
+ }
+
/**
* Returns the path of the crosstool.
*/
@@ -1407,6 +1417,11 @@ public class CppConfiguration extends BuildConfiguration.Fragment {
return cppOptions.getLipoMode();
}
+ /** Returns true if lipo should be converted to thinlto. */
+ public boolean shouldConvertLipoToThinLto() {
+ return convertLipoToThinLto;
+ }
+
public boolean isFdo() {
return cppOptions.isFdo();
}