自 2025 年 3 月 27 日起,我们建议您使用 android-latest-release
而非 aosp-main
构建 AOSP 并为其做出贡献。如需了解详情,请参阅 AOSP 的变更。
在 Starlark 中包含和继承语句
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
在 make 中, include
语句可以包含带有变量的文件路径,并且在以减号为前缀时将忽略不存在的文件。产品配置等价物是inherit-product-if-exists
函数。 Starlark 对由字符串文字标识的文件使用load
语句,如果文件不存在,Starlark 会抛出错误。
要解决此限制,Starlark 转换器:
- 查找所有可以匹配包含变量的路径的 Makefile
- 为所有这些发出 Starlark
load
语句 - 在运行时选择正确的
请注意,生成的 Starlark 代码可能看起来不自然,因为它列出了所有匹配的路径,即使只有一个会被执行。
我们建议在include
/ inherit-product
语句中删除变量引用。
当变量引用无法避免时,尽量减少变量部分。例如:
MY_DIR := path/to/$(TARGET_PRODUCT)
include $(MY_DIR)/file.mk
导致转换器为源树中的每个file.mk
生成一个load
语句,而
include path/to/$(TARGET_PRODUCT)/file.mk
将其限制为path/to
下的file.mk
文件。当然,删除TARGET_PRODUCT
的使用也是理想的。
本页面上的内容和代码示例受内容许可部分所述许可的限制。Java 和 OpenJDK 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2022-06-06。
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["没有我需要的信息","missingTheInformationINeed","thumb-down"],["太复杂/步骤太多","tooComplicatedTooManySteps","thumb-down"],["内容需要更新","outOfDate","thumb-down"],["翻译问题","translationIssue","thumb-down"],["示例/代码问题","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2022-06-06。"],[],[]]