aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools
diff options
context:
space:
mode:
authorGravatar hlopko <hlopko@google.com>2018-05-30 23:50:40 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-05-30 23:52:04 -0700
commit05fef1828ccd06d982909a58c3651d31bbfe9b60 (patch)
tree93d8221d996987eb632744ede471e418c5c57dde /tools
parenta9eb2403e2832859cbce5e6a06f4142ea4acd9c8 (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.bzl33
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]