Support shorten_virtual_includes
Copybara Import from https://github.com/bazelbuild/rules_cc/pull/438
BEGIN_PUBLIC
Support shorten_virtual_includes (#438)
Context: https://github.com/bazelbuild/bazel/pull/26528, https://github.com/protocolbuffers/protobuf/issues/20085
Enable `shorten_virtual_includes` for MSVC toolchains to shorten virtual include paths to mitigate long path issue on windows.
Closes #438
END_PUBLIC
COPYBARA_INTEGRATE_REVIEW=https://github.com/bazelbuild/rules_cc/pull/438 from meteorcloudy:shorten_virtual_includes 5ab4b9465c725a59b13d5ebaa69cafdb6006dac1
PiperOrigin-RevId: 781977791
Change-Id: Ia683103cb9da2eed8cca165ccf1243f3ee1357da
diff --git a/cc/private/toolchain/BUILD.windows.tpl b/cc/private/toolchain/BUILD.windows.tpl
index 75fbd0a..1d0f8a0 100644
--- a/cc/private/toolchain/BUILD.windows.tpl
+++ b/cc/private/toolchain/BUILD.windows.tpl
@@ -330,6 +330,7 @@
dbg_mode_debug_flag = "%{dbg_mode_debug_flag_x64}",
fastbuild_mode_debug_flag = "%{fastbuild_mode_debug_flag_x64}",
supports_parse_showincludes = %{msvc_parse_showincludes_x64},
+ shorten_virtual_includes = True,
)
toolchain(
@@ -399,6 +400,7 @@
dbg_mode_debug_flag = "%{dbg_mode_debug_flag_x86}",
fastbuild_mode_debug_flag = "%{fastbuild_mode_debug_flag_x86}",
supports_parse_showincludes = %{msvc_parse_showincludes_x86},
+ shorten_virtual_includes = True,
)
toolchain(
@@ -468,6 +470,7 @@
dbg_mode_debug_flag = "%{dbg_mode_debug_flag_arm}",
fastbuild_mode_debug_flag = "%{fastbuild_mode_debug_flag_arm}",
supports_parse_showincludes = %{msvc_parse_showincludes_arm},
+ shorten_virtual_includes = True,
)
toolchain(
@@ -537,6 +540,7 @@
dbg_mode_debug_flag = "%{dbg_mode_debug_flag_arm64}",
fastbuild_mode_debug_flag = "%{fastbuild_mode_debug_flag_arm64}",
supports_parse_showincludes = %{msvc_parse_showincludes_arm64},
+ shorten_virtual_includes = True,
)
toolchain(
diff --git a/cc/private/toolchain/windows_cc_toolchain_config.bzl b/cc/private/toolchain/windows_cc_toolchain_config.bzl
index d8cf50e..af17bb4 100644
--- a/cc/private/toolchain/windows_cc_toolchain_config.bzl
+++ b/cc/private/toolchain/windows_cc_toolchain_config.bzl
@@ -943,6 +943,11 @@
enabled = True,
)
+ shorten_virtual_includes_feature = feature(
+ name = "shorten_virtual_includes",
+ enabled = ctx.attr.shorten_virtual_includes,
+ )
+
treat_warnings_as_errors_feature = feature(
name = "treat_warnings_as_errors",
flag_sets = [
@@ -1277,6 +1282,7 @@
preprocessor_defines_feature,
parse_showincludes_feature,
no_dotd_file_feature,
+ shorten_virtual_includes_feature,
generate_pdb_file_feature,
generate_linkmap_feature,
shared_flag_feature,
@@ -1657,6 +1663,7 @@
"msvc_lib_path": attr.string(default = "vc_installation_error.bat"),
"msvc_link_path": attr.string(default = "vc_installation_error.bat"),
"msvc_ml_path": attr.string(default = "vc_installation_error.bat"),
+ "shorten_virtual_includes": attr.bool(default = False),
"supports_parse_showincludes": attr.bool(),
"target_libc": attr.string(),
"target_system_name": attr.string(),