Add a --output_directory_suffix command line option to facilitate the removal of the C++ toolchain identifier from the output path.
RELNOTES: None.
PiperOrigin-RevId: 166705005
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 56ed29d..a367817 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
@@ -1874,8 +1874,16 @@
} else {
lipoSuffix = "";
}
- String toolchainPrefix = toolchainIdInOutputDirectory
- ? toolchainIdentifier : desiredCpu;
+ String toolchainPrefix;
+ if (toolchainIdInOutputDirectory) {
+ toolchainPrefix = toolchainIdentifier;
+ } else {
+ toolchainPrefix = desiredCpu;
+ if (!cppOptions.outputDirectoryTag.isEmpty()) {
+ toolchainPrefix += "-" + cppOptions.outputDirectoryTag;
+ }
+ }
+
return toolchainPrefix + lipoSuffix;
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppOptions.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppOptions.java
index fec5f44..371d57c 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppOptions.java
@@ -151,6 +151,19 @@
)
public String cppCompiler;
+ // This is different from --platform_suffix in that that one is designed to facilitate the
+ // migration to toolchains and this one is designed to eliminate the C++ toolchain identifier
+ // form the output directory path.
+ @Option(
+ name = "cc_output_directory_tag",
+ defaultValue = "",
+ category = "misc",
+ documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+ effectTags = {OptionEffectTag.UNKNOWN},
+ help = "Specifies a suffix to be added to the configuration directory."
+ )
+ public String outputDirectoryTag;
+
@Option(
name = "glibc",
defaultValue = "null",