fuchsia_sdk_repository

加载特定版本的 Fuchsia IDK。

属性

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

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

MODULE.bazel 上下文(在模块扩展程序的实现函数中调用代码库规则时)不支持此属性。
String Dict 可选 -
parent_sdk 如果指定此选项,当前 SDK 中也存在于父级 SDK 中的库将始终解析为父级 SDK。实际上,
这意味着,如果当前 SDK 中定义的库也在 parent_sdk 中定义,则该库在当前 SDK 中将被忽略,
并且对该库的引用将被替换为 @<parent_sdk>//<library>。当 SDK 分层时(例如内部 SDK 和公共 SDK),这非常有用。
标签 可选 None
parent_sdk_local_paths 如果指定了 parent_sdk,则 parent_sdk_local_paths 必须包含与父级 SDK 的 local_paths 属性相同的值。
这是必需的,因为 Bazel 无法评估标签是否存在,因此在使用分层 SDK 时,我们会再次处理父级
SDK 的元数据。
TODO:如果这会限制或导致性能问题,请寻找更好的方法。
字符串列表 可选 []
local_paths 本地 IDK 目录的路径。 字符串列表 可选 []
local_idk_repos 包含本地 IDK 目录的代码库。

每个标签都必须位于代码库的根软件包中,例如
@fuchsia_idk(@fuchsia_idk//:fuchsia_idk 的简写形式);
代码库的根目录用作 IDK。与 local_paths 中以
@repo 为前缀的条目不同,这些条目是使用
调用方的代码库映射解析的,因此表观代码库名称有效。
标签列表 可选 []
local_idk_version_file 一个可选文件,用于标记 local_paths 或 local_idk_repos 指向的 IDK 版本。 标签 可选 None
local_sdk_version_file local_idk_version_file 的已弃用别名。 标签 可选 None
buildifier buildifier 工具的可选标签,用于重新设置所有生成的 Bazel 文件的格式。 标签 可选 None
visibility_templates 允许添加额外的可见性列表。

此属性允许调用方指定一组额外的可见性
参数,以便在生成代码库时传递到模板中。
如需查看键列表,请参阅 generate_sdk_buildrules.bzl 文件。

传入标签时,您必须指定标签的
完全限定名称,以确保我们引用正确的标签。例如,
如果您想引用根代码库中的目标,应
使用 @@//foo:
pkg 等路径。如果您将此值作为
//foo:
pkg_ 传入,则它将以一种让
bazel 认为它属于您正在生成的代码库的方式传入模板。

此列表中的值可以包含通配符(“”),该通配符会展开以包含
该位置的所有目录,但其
用法存在限制。
- 扩展仅适用于名为“@@”的代码库。
- 扩展仅支持单个“
”
- 扩展将检查正在扩展的位置
是否存在 BUILD.bazel 文件,如果存在,则会添加该文件,但不会检查
BUILD.bazel 文件是否包含正在扩展的目标。

通配符扩展的示例如下:
- @@//src//foo:bar
- @@//src/
:bar
- @@//src/*/foo
String List Dict 可选 {}

环境变量

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

  • LOCAL_FUCHSIA_SDK_DIRECTORY