diff options
author | rosica <rosica@google.com> | 2018-05-28 05:59:33 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-05-28 06:00:36 -0700 |
commit | 80442861d936a7dc4e832f95cf03e51af50ca3a5 (patch) | |
tree | 303de26c1793987c491a2bfb2ee5ae2931471b29 /tools | |
parent | eca7b81cf8cc51e1fe56e5ed7d4ad5cd1668a17a (diff) |
Add a compiler_flag rule that exposes the value of the "compiler" field of CROSSTOOL
RELNOTES: None
PiperOrigin-RevId: 198295290
Diffstat (limited to 'tools')
-rw-r--r-- | tools/cpp/BUILD | 4 | ||||
-rw-r--r-- | tools/cpp/compiler_flag.bzl | 28 | ||||
-rw-r--r-- | tools/cpp/toolchain_utils.bzl | 1 |
3 files changed, 33 insertions, 0 deletions
diff --git a/tools/cpp/BUILD b/tools/cpp/BUILD index 57007d324a..68886db19f 100644 --- a/tools/cpp/BUILD +++ b/tools/cpp/BUILD @@ -392,3 +392,7 @@ filegroup( name = "crosstool_lib", srcs = ["crosstool_lib.bzl"], ) + +load(":compiler_flag.bzl", "compiler_flag") + +compiler_flag(name = "compiler") diff --git a/tools/cpp/compiler_flag.bzl b/tools/cpp/compiler_flag.bzl new file mode 100644 index 0000000000..4b134a1bf3 --- /dev/null +++ b/tools/cpp/compiler_flag.bzl @@ -0,0 +1,28 @@ +# Copyright 2018 The Bazel Authors. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Rule that allows select() to differentiate between compilers.""" + +load("//tools/cpp:toolchain_utils.bzl", "find_cpp_toolchain") + +def _compiler_flag_impl(ctx): + toolchain = find_cpp_toolchain(ctx) + return [config_common.FeatureFlagInfo(value = toolchain.compiler)] + +compiler_flag = rule( + implementation = _compiler_flag_impl, + attrs = { + "_cc_toolchain": attr.label(default=Label("//tools/cpp:current_cc_toolchain")), + } +) diff --git a/tools/cpp/toolchain_utils.bzl b/tools/cpp/toolchain_utils.bzl index 83d070749e..8d38f30e5c 100644 --- a/tools/cpp/toolchain_utils.bzl +++ b/tools/cpp/toolchain_utils.bzl @@ -34,6 +34,7 @@ def _make_legacy_toolchain(ctx): ar_executable = _get_cpp_toolchain_attr(ctx, "ar_executable"), strip_executable = _get_cpp_toolchain_attr(ctx, "strip_executable"), ld_executable = _get_cpp_toolchain_attr(ctx, "ld_executable"), + compiler = _get_cpp_toolchain_attr(ctx, "compiler"), ) def find_cpp_toolchain(ctx): |