From 046e8fb7483df4e4fba028b8e85f68241a08f7f4 Mon Sep 17 00:00:00 2001 From: Adam Cozzette Date: Wed, 21 Nov 2018 11:00:45 -0800 Subject: [PATCH] Cherry-picked Bazel fix from PR #5085 (#5382) * use flag_values = {"@bazel_tools//tools/cpp:compiler": "x"} for compiler config_settings * Create compiler_config_setting.bzl --- BUILD | 7 +++---- compiler_config_setting.bzl | 21 +++++++++++++++++++++ 2 files changed, 24 insertions(+), 4 deletions(-) create mode 100644 compiler_config_setting.bzl diff --git a/BUILD b/BUILD index 19f07c548..002ac5fe6 100644 --- a/BUILD +++ b/BUILD @@ -39,10 +39,9 @@ COPTS = select({ ], }) -config_setting( - name = "msvc", - values = { "compiler": "msvc-cl" }, -) +load(":compiler_config_setting.bzl", "create_compiler_config_setting") + +create_compiler_config_setting(name = "msvc", value = "msvc-cl") config_setting( name = "android", diff --git a/compiler_config_setting.bzl b/compiler_config_setting.bzl new file mode 100644 index 000000000..5e52a6524 --- /dev/null +++ b/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}, + )