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 29ef01a53ab586..518752032a68cb 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 @@ -1192,7 +1192,8 @@ public boolean enableCcDynamicLibrariesForRuntime() { } private void checkForToolchainSkylarkApiAvailability() throws EvalException { - if (!cppOptions.enableLegacyToolchainSkylarkApi) { + if (cppOptions.disableLegacyToolchainSkylarkApi + || !cppOptions.enableLegacyToolchainSkylarkApi) { throw new EvalException(null, "Information about the C++ toolchain API is not accessible " + "anymore through ctx.fragments.cpp . Use CcToolchainInfo instead."); } 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 c91e413319f7d1..1208f269942f64 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 @@ -756,11 +756,26 @@ public Label getFdoPrefetchHintsLabel() { documentationCategory = OptionDocumentationCategory.UNDOCUMENTED, effectTags = {OptionEffectTag.LOADING_AND_ANALYSIS}, metadataTags = { - OptionMetadataTag.INCOMPATIBLE_CHANGE, - OptionMetadataTag.TRIGGERED_BY_ALL_INCOMPATIBLE_CHANGES}, - help = "Flag for disabling access to the C++ toolchain API through the ctx.fragments.cpp .") + OptionMetadataTag.INCOMPATIBLE_CHANGE, + OptionMetadataTag.TRIGGERED_BY_ALL_INCOMPATIBLE_CHANGES + }, + help = + "Do not use this flag. Use --incompatible_disable_legacy_cpp_toolchain_skylark_api " + + "instead.") public boolean enableLegacyToolchainSkylarkApi; + @Option( + name = "incompatible_disable_legacy_cpp_toolchain_skylark_api", + defaultValue = "false", + documentationCategory = OptionDocumentationCategory.UNDOCUMENTED, + effectTags = {OptionEffectTag.LOADING_AND_ANALYSIS}, + metadataTags = { + OptionMetadataTag.INCOMPATIBLE_CHANGE, + OptionMetadataTag.TRIGGERED_BY_ALL_INCOMPATIBLE_CHANGES + }, + help = "Flag for disabling access to the C++ toolchain API through the ctx.fragments.cpp .") + public boolean disableLegacyToolchainSkylarkApi; + @Option( name = "experimental_disable_legacy_cc_linking_api", defaultValue = "false",