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",