ソースを参照

Merge pull request #5085 from scentini/compiler-flag

Route "compiler" value of config_setting through @bazel_tools/tools/cpp:compiler.
Feng Xiao 7 年 前
コミット
ff3891dab1
2 ファイル変更24 行追加4 行削除
  1. 3 4
      BUILD
  2. 21 0
      compiler_config_setting.bzl

+ 3 - 4
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(
 config_setting(
     name = "android",
     name = "android",

+ 21 - 0
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},
+        )