blob: 593d269628fd44b791f215a0b375e095ef205f4e [file] [log] [blame]
package(default_visibility = ["//visibility:public"])
load("@bazel_tools//tools/osx/crosstool:osx_archs.bzl", "OSX_TOOLS_ARCHS")
load("@rules_cc//cc:defs.bzl", "cc_toolchain_suite", "cc_library")
load(":armeabi_cc_toolchain_config.bzl", "armeabi_cc_toolchain_config")
load(":cc_toolchain_config.bzl", "cc_toolchain_config")
# Reexporting osx_arch.bzl for backwards compatibility
# Originally this file was present in @local_config_cc, but with the split in
# https://github.com/bazelbuild/bazel/pull/8459 we had to move the file to
# @local_config_cc_toolchains. This alias is there to keep the code backwards
# compatible (and serves no other purpose).
alias(name = "osx_archs.bzl", actual = "@bazel_tools//tools/osx/crosstool:osx_archs.bzl")
CC_TOOLCHAINS = [(
cpu + "|clang",
":cc-compiler-" + cpu,
) for cpu in OSX_TOOLS_ARCHS] + [(
cpu,
":cc-compiler-" + cpu,
) for cpu in OSX_TOOLS_ARCHS] + [
("k8|clang", ":cc-compiler-darwin_x86_64"),
("darwin|clang", ":cc-compiler-darwin_x86_64"),
("k8", ":cc-compiler-darwin_x86_64"),
("darwin", ":cc-compiler-darwin_x86_64"),
("armeabi-v7a|compiler", ":cc-compiler-armeabi-v7a"),
("armeabi-v7a", ":cc-compiler-armeabi-v7a"),
]
cc_library(
name = "link_extra_lib",
)
cc_library(
name = "malloc",
)
filegroup(
name = "empty",
srcs = [],
)
filegroup(
name = "cc_wrapper",
srcs = ["cc_wrapper.sh"],
)
cc_toolchain_suite(
name = "toolchain",
toolchains = dict(CC_TOOLCHAINS),
)
[
filegroup(
name = "osx_tools_" + arch,
srcs = [
":cc_wrapper",
":libtool",
":libtool_check_unique",
":make_hashed_objlist.py",
":wrapped_clang",
":wrapped_clang_pp",
":xcrunwrapper.sh",
],
)
for arch in OSX_TOOLS_ARCHS
]
[
apple_cc_toolchain(
name = "cc-compiler-" + arch,
all_files = ":osx_tools_" + arch,
ar_files = ":osx_tools_" + arch,
as_files = ":osx_tools_" + arch,
compiler_files = ":osx_tools_" + arch,
dwp_files = ":empty",
linker_files = ":osx_tools_" + arch,
objcopy_files = ":empty",
strip_files = ":osx_tools_" + arch,
supports_param_files = 1,
toolchain_config = arch,
toolchain_identifier = arch,
)
for arch in OSX_TOOLS_ARCHS
]
# When xcode_locator fails and causes cc_autoconf_toolchains to fall back
# to the non-Xcode C++ toolchain, it uses the legacy cpu value to refer to
# the toolchain, which is "darwin" for x86_64 macOS.
alias(
name = "cc-compiler-darwin",
actual = ":cc-compiler-darwin_x86_64",
)
[
cc_toolchain_config(
name = arch,
compiler = "clang",
cpu = arch,
cxx_builtin_include_directories = [
%{cxx_builtin_include_directories}
],
tool_paths_overrides = {%{tool_paths_overrides}},
)
for arch in OSX_TOOLS_ARCHS
]
# Android tooling requires a default toolchain for the armeabi-v7a cpu.
cc_toolchain(
name = "cc-compiler-armeabi-v7a",
toolchain_identifier = "stub_armeabi-v7a",
toolchain_config = ":stub_armeabi-v7a",
all_files = ":empty",
ar_files = ":empty",
as_files = ":empty",
compiler_files = ":empty",
dwp_files = ":empty",
linker_files = ":empty",
objcopy_files = ":empty",
strip_files = ":empty",
supports_param_files = 1,
)
armeabi_cc_toolchain_config(name = "stub_armeabi-v7a")