diff options
author | hlopko <hlopko@google.com> | 2018-05-30 23:50:40 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-05-30 23:52:04 -0700 |
commit | 05fef1828ccd06d982909a58c3651d31bbfe9b60 (patch) | |
tree | 93d8221d996987eb632744ede471e418c5c57dde /tools | |
parent | a9eb2403e2832859cbce5e6a06f4142ea4acd9c8 (diff) |
Update tools/cpp/toolchain_utils.bzl to return the proper C++ toolchain
RELNOTES: None
PiperOrigin-RevId: 198676014
Diffstat (limited to 'tools')
-rw-r--r-- | tools/cpp/toolchain_utils.bzl | 33 |
1 files changed, 9 insertions, 24 deletions
diff --git a/tools/cpp/toolchain_utils.bzl b/tools/cpp/toolchain_utils.bzl index 8d38f30e5c..5ab9ade50c 100644 --- a/tools/cpp/toolchain_utils.bzl +++ b/tools/cpp/toolchain_utils.bzl @@ -13,34 +13,19 @@ # See the License for the specific language governing permissions and # limitations under the License. -"""Finds the c++ toolchain if it is enabled. - -Otherwise, falls back to a toolchain constructed from the CppConfiguration. """ +Finds the c++ toolchain. -def _get_cpp_toolchain_attr(ctx, attr): - if hasattr(ctx.attr._cc_toolchain[cc_common.CcToolchainInfo], attr): - return getattr(ctx.attr._cc_toolchain[cc_common.CcToolchainInfo], attr) - else: - return getattr(ctx.fragments.cpp, attr) - -def _make_legacy_toolchain(ctx): - return struct( - objcopy_executable = _get_cpp_toolchain_attr(ctx, "objcopy_executable"), - compiler_executable = _get_cpp_toolchain_attr(ctx, "compiler_executable"), - preprocessor_executable = _get_cpp_toolchain_attr(ctx, "preprocessor_executable"), - nm_executable = _get_cpp_toolchain_attr(ctx, "nm_executable"), - objdump_executable = _get_cpp_toolchain_attr(ctx, "objdump_executable"), - 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"), - ) +Returns the toolchain if enabled, and falls back to a toolchain constructed from +the CppConfiguration. +""" def find_cpp_toolchain(ctx): - """If the c++ toolchain is in use, returns it. + """ + Finds the c++ toolchain. - Otherwise, returns a c++ toolchain derived from legacy toolchain selection. + If the c++ toolchain is in use, returns it. Otherwise, returns a c++ + toolchain derived from legacy toolchain selection. Args: ctx: The rule context for which to find a toolchain. @@ -52,4 +37,4 @@ def find_cpp_toolchain(ctx): if Label("@bazel_tools//tools/cpp:toolchain_type") in ctx.fragments.platform.enabled_toolchain_types: return ctx.toolchains["@bazel_tools//tools/cpp:toolchain_type"] else: - return _make_legacy_toolchain(ctx) + return ctx.attr._cc_toolchain[cc_common.CcToolchainInfo] |