fuchsia_clang_repository

加载特定版本的 clang。

必须设置 cipd_tag 或 local_archive 中的一个。

如果设置了 cipd_tag,则可以选择性地设置 sha256 以验证下载的文件,并允许 Bazel 缓存该文件。

如果未设置 cipd_tag,则必须将 local_archive 设置为核心 IDK 归档文件的路径。

属性

名称 说明 类型 强制 默认
名称 此代码库的唯一名称。 名称 必需 -
repo_mapping 仅在 WORKSPACE 上下文中:从本地代码库名称到全局代码库名称的字典。此属性可用于控制相应代码库的依赖项的工作区依赖项解析。

例如,条目 "@foo": "@bar" 声明,对于此代码库依赖于 @foo 的任何时间(例如依赖于 @foo//some:target),实际上应在全局声明的 @bar (@bar//some:target) 中解析该依赖项。

MODULE.bazel 上下文中(在模块扩展的实现函数内调用代码库规则时),支持此属性。
字符串字典 可选 -
cipd_tag 要加载的版本的 CIPD 标记。 String 可选 ""
sha256 clang 归档文件的可选 SHA-256 哈希值。有效键为 mac 和 linux 字符串字典 可选 {}
local_archive 本地 clang 归档文件。 String 可选 ""
local_path 本地 clang 安装路径、完整标签或相对于工作区目录的路径 String 可选 ""
from_workspace 包含 clang 安装的任何 bazel 外部工作区的标签。 标签 可选 None
local_version_file 可选路径,指向此 clang 安装的版本文件的相对于工作区的路径。 标签 可选 None
sdk_root_label 已弃用 - Fuchsia SDK 根标签。例如:@fuchsia_sdk 标签 可选 "@fuchsia_sdk"
sysroot_paths 按 Bazel 架构划分的 sysroot 路径(相对于 execroot) 字符串字典 可选 {"aarch64": "external/rules_fuchsia++fuchsia_sdk_ext+fuchsia_sdk/arch/arm64/sysroot", "x86_64": "external/rules_fuchsia++fuchsia_sdk_ext+fuchsia_sdk/arch/x64/sysroot", "riscv64": "external/rules_fuchsia++fuchsia_sdk_ext+fuchsia_sdk/arch/riscv64/sysroot"}
sysroot_headers 按 Bazel 架构划分的 Sysroot 头文件组。这些文件组将添加到 cc_toolchain 的编译器文件中。值应该是指向涵盖所有必须出现在 C++ 编译操作沙盒中的标头的 filegroup 的标签。请参阅示例的默认值。 字符串字典 可选 {"aarch64": "@fuchsia_sdk//:fuchsia-sysroot-headers-aarch64", "x86_64": "@fuchsia_sdk//:fuchsia-sysroot-headers-x86_64", "riscv64": "@fuchsia_sdk//:fuchsia-sysroot-headers-riscv64"}
sysroot_libs 按 Bazel 架构划分的 sysroot 库 filegroup。这些将添加到 cc_toolchain 的链接器文件中。值应是指向涵盖所有必须出现在 C++ 链接操作沙盒中的库的文件组的标签。请参阅示例的默认值。 字符串字典 可选 {"aarch64": "@fuchsia_sdk//:fuchsia-sysroot-libraries-aarch64", "x86_64": "@fuchsia_sdk//:fuchsia-sysroot-libraries-x86_64", "riscv64": "@fuchsia_sdk//:fuchsia-sysroot-libraries-riscv64"}
extra_target_compatible_with 工具链必须匹配的可选的额外平台限制值列表。这仅适用于 Fuchsia 树内 build,该 build 还使用无法依赖 SDK sysroot 的其他 Fuchsia 特定工具链生成 Fuchsia 二进制文件。 标签列表 可选 []
rules_fuchsia_root_label Fuchsia 工作区规则根标签。例如:@fuchsia_sdk 标签 可选 "@fuchsia_sdk"
cipd_ensure_file 用于下载 clang 的 cipd ensure 文件。 标签 可选 None
cipd_bin 将用于下载 SDK 的 CIPD 二进制文件 标签 可选 None

环境变量

此代码库规则依赖于以下环境变量:

  • LOCAL_FUCHSIA_PLATFORM_BUILD* LOCAL_FUCHSIA_CLANG_VERSION_FILE