b894c69abb
Reviewer notes: PS1 and PS2 handle everything up to the linking stage of the build PS6 and PS7 are trivial renamings and rebases, diff between Base->PS5 for a cleaner review No-Try: true Change-Id: Ib21ce2e8839ecd4b4dd57280e82f56a98194e476 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/532765 Reviewed-by: Kevin Lubick <kjlubick@google.com> Commit-Queue: Jorge Betancourt <jmbetancourt@google.com>
94 lines
2.9 KiB
Python
94 lines
2.9 KiB
Python
load("//bazel:macros.bzl", "exports_files_legacy")
|
|
load("@rules_cc//cc:defs.bzl", "cc_toolchain", "cc_toolchain_suite")
|
|
load(":linux_amd64_toolchain_config.bzl", "provide_linux_amd64_toolchain_config")
|
|
load(":mac_m1_toolchain_config.bzl", "provide_mac_m1_toolchain_config")
|
|
|
|
licenses(["notice"])
|
|
|
|
exports_files_legacy()
|
|
|
|
package(default_visibility = ["//visibility:public"])
|
|
|
|
# https://bazel.build/reference/be/c-cpp#cc_toolchain_suite
|
|
# cc_toolchain_suite will fetch deps for toolchains it will not use, which
|
|
# is why we split up the suites by OS. When attempting to fetch "@clang_linux_amd64//:all_files",
|
|
# a script compiled for linux to extract ar archives will break on other platforms.
|
|
cc_toolchain_suite(
|
|
name = "clang_suite_linux",
|
|
toolchains = {
|
|
# The key is target_cpu|compiler
|
|
# compiler appears to be a string we can choose arbitrarily
|
|
# https://bazel.build/reference/command-line-reference?hl=en#flag--compiler
|
|
"k8|host_is_linux_amd64": ":linux_amd64_host",
|
|
"x86_64|host_is_linux_amd64": ":linux_amd64_host",
|
|
"k8": ":linux_amd64_host",
|
|
},
|
|
)
|
|
|
|
cc_toolchain_suite(
|
|
name = "clang_suite_mac",
|
|
toolchains = {
|
|
"arm64|host_is_mac_m1": ":mac_m1_host",
|
|
"darwin|host_is_mac_m1": ":mac_m1_host",
|
|
"darwin_arm64|host_is_mac_m1": ":mac_m1_host",
|
|
},
|
|
)
|
|
|
|
filegroup(name = "not_implemented")
|
|
|
|
filegroup(
|
|
name = "all_linux_amd64_files",
|
|
srcs = [
|
|
"linux_trampolines/IWYU_mapping.imp",
|
|
"linux_trampolines/ar_trampoline_linux.sh",
|
|
"linux_trampolines/clang_trampoline_linux.sh",
|
|
"linux_trampolines/lld_trampoline_linux.sh",
|
|
"@clang_linux_amd64//:all_files",
|
|
],
|
|
)
|
|
|
|
filegroup(
|
|
name = "all_mac_m1_files",
|
|
srcs = [
|
|
"mac_trampolines/ar_trampoline_mac.sh",
|
|
"mac_trampolines/clang_trampoline_mac.sh",
|
|
"mac_trampolines/lld_trampoline_mac.sh",
|
|
"@clang_mac_m1//:all_files",
|
|
],
|
|
)
|
|
|
|
provide_linux_amd64_toolchain_config(
|
|
name = "linux_amd64_toolchain_config",
|
|
)
|
|
|
|
provide_mac_m1_toolchain_config(
|
|
name = "mac_m1_toolchain_config",
|
|
)
|
|
|
|
# https://bazel.build/reference/be/c-cpp#cc_toolchain
|
|
cc_toolchain(
|
|
name = "linux_amd64_host",
|
|
all_files = ":all_linux_amd64_files",
|
|
ar_files = ":all_linux_amd64_files",
|
|
compiler_files = ":all_linux_amd64_files",
|
|
dwp_files = ":not_implemented",
|
|
linker_files = ":all_linux_amd64_files",
|
|
objcopy_files = ":not_implemented",
|
|
strip_files = ":not_implemented",
|
|
supports_param_files = False,
|
|
toolchain_config = ":linux_amd64_toolchain_config",
|
|
)
|
|
|
|
cc_toolchain(
|
|
name = "mac_m1_host",
|
|
all_files = ":all_mac_m1_files",
|
|
ar_files = ":all_mac_m1_files",
|
|
compiler_files = ":all_mac_m1_files",
|
|
dwp_files = ":not_implemented",
|
|
linker_files = ":all_mac_m1_files",
|
|
objcopy_files = ":not_implemented",
|
|
strip_files = ":not_implemented",
|
|
supports_param_files = False,
|
|
toolchain_config = ":mac_m1_toolchain_config",
|
|
)
|