diff --git a/third_party/protobuf/3.6.1/BUILD b/third_party/protobuf/3.6.1/BUILD index f489d25bb18efb..11eb5bd135bb8d 100644 --- a/third_party/protobuf/3.6.1/BUILD +++ b/third_party/protobuf/3.6.1/BUILD @@ -91,9 +91,11 @@ COPTS = select({ ], }) -config_setting( +load(":compiler_config_setting.bzl", "create_compiler_config_setting") + +create_compiler_config_setting( name = "msvc", - values = { "compiler": "msvc-cl" }, + value = "msvc-cl", ) config_setting( diff --git a/third_party/protobuf/3.6.1/compiler_config_setting.bzl b/third_party/protobuf/3.6.1/compiler_config_setting.bzl new file mode 100644 index 00000000000000..5e52a6524ffe5f --- /dev/null +++ b/third_party/protobuf/3.6.1/compiler_config_setting.bzl @@ -0,0 +1,21 @@ +"""Creates config_setting that allows selecting based on 'compiler' value.""" + +def create_compiler_config_setting(name, value): + # The "do_not_use_tools_cpp_compiler_present" attribute exists to + # distinguish between older versions of Bazel that do not support + # "@bazel_tools//tools/cpp:compiler" flag_value, and newer ones that do. + # In the future, the only way to select on the compiler will be through + # flag_values{"@bazel_tools//tools/cpp:compiler"} and the else branch can + # be removed. + if hasattr(cc_common, "do_not_use_tools_cpp_compiler_present"): + native.config_setting( + name = name, + flag_values = { + "@bazel_tools//tools/cpp:compiler": value, + }, + ) + else: + native.config_setting( + name = name, + values = {"compiler": value}, + )