diff options
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.java | 15 |
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(); } |