blob: 5ac87a4752a8ba13ace5105438af04f7b601acfd [file] [log] [blame]
# Copyright 2023 The Pigweed Authors
#
# 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
#
# https://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.
"""Dependency registration helpers for users of Pigweed.
Before loading this bzl file, you must first:
* Declare the Pigweed repository.
* Declare the pw_toolchain repository.
* Initialize the CIPD client repository.
"""
load(
"@pw_toolchain//features/macos:generate_xcode_repository.bzl",
"pw_xcode_command_line_tools_repository",
)
load(
"//pw_env_setup/bazel/cipd_setup:cipd_rules.bzl",
"cipd_repository",
)
# buildifier: disable=unnamed-macro
def register_pigweed_cxx_toolchains():
"""This function registers Pigweed's upstream toolchains.
WARNING: The configurations and permutations of these toolchains are subject
to change without notice. These changes may cause your build to break, so if
you want to minimize this churn, consider declaring your own toolchains to
have more control over the stability.
"""
# Generate xcode repository on macOS.
pw_xcode_command_line_tools_repository()
# Fetch llvm toolchain.
cipd_repository(
name = "llvm_toolchain",
build_file = "@pw_toolchain//build_external:llvm_clang.BUILD",
path = "fuchsia/third_party/clang/${os}-${arch}",
tag = "git_revision:c58bc24fcf678c55b0bf522be89eff070507a005",
)
# Fetch linux sysroot for host builds.
cipd_repository(
name = "linux_sysroot",
path = "fuchsia/third_party/sysroot/bionic",
tag = "git_revision:702eb9654703a7cec1cadf93a7e3aa269d053943",
)
# Fetch gcc-arm-none-eabi toolchain.
cipd_repository(
name = "gcc_arm_none_eabi_toolchain",
build_file = "@pw_toolchain//build_external:gcc_arm_none_eabi.BUILD",
path = "fuchsia/third_party/armgcc/${os}-${arch}",
tag = "version:2@12.2.MPACBTI-Rel1.1",
)
native.register_toolchains(
"//pw_toolchain/arm_gcc:arm_gcc_cc_toolchain_cortex-m0",
"//pw_toolchain/arm_gcc:arm_gcc_cc_toolchain_cortex-m3",
"//pw_toolchain/arm_gcc:arm_gcc_cc_toolchain_cortex-m4",
"//pw_toolchain/arm_gcc:arm_gcc_cc_toolchain_cortex-m4+nofp",
"//pw_toolchain/arm_gcc:arm_gcc_cc_toolchain_cortex-m33",
"//pw_toolchain/arm_gcc:arm_gcc_cc_toolchain_cortex-m33+nofp",
"//pw_toolchain/host_clang:host_cc_toolchain_linux",
"//pw_toolchain/host_clang:host_cc_toolchain_macos",
)