aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFeng Xiao <xfxyjwf@gmail.com>2018-09-10 16:47:22 -0700
committerGitHub <noreply@github.com>2018-09-10 16:47:22 -0700
commitff3891dab1b1f462d90a68666d14f57eb5fea34f (patch)
treedd2e2be275da0a881667875f8fcfd43950459ee8
parentbaa4a21130a75aa80f928a827586b97400dfc3ba (diff)
parent664f9277b52dd7a68fa4769dc1df4ea9e061267a (diff)
downloadprotobuf-ff3891dab1b1f462d90a68666d14f57eb5fea34f.tar.gz
protobuf-ff3891dab1b1f462d90a68666d14f57eb5fea34f.tar.bz2
protobuf-ff3891dab1b1f462d90a68666d14f57eb5fea34f.zip
Merge pull request #5085 from scentini/compiler-flag
Route "compiler" value of config_setting through @bazel_tools/tools/cpp:compiler.
-rw-r--r--BUILD7
-rw-r--r--compiler_config_setting.bzl21
2 files changed, 24 insertions, 4 deletions
diff --git a/BUILD b/BUILD
index 25c41a42..58d7a82b 100644
--- a/BUILD
+++ b/BUILD
@@ -52,10 +52,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 00000000..5e52a652
--- /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},
+ )