加载特定版本的 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