工具链解析实现详情
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
<ph type="x-smartling-placeholder">
</ph>
报告问题open_in_new
查看来源open_in_new
敬上
每晚
·
7.3。
·
7.2 条
·
7.1。
·
7.0。
·
6.5
注意:本部分面向 Bazel 开发者,
规则作者。
多个 SkyFunction 类实现了工具链解析进程:
RegisteredToolchainsFunction
和
RegisteredExecutionPlatformsFunction
根据当前的
配置和 WORKSPACE 文件。
SingleToolchainResolutionFunction
为每个执行平台解析单个工具链类型。也就是说,
它都会根据每个执行平台找到要使用的最佳注册工具链,
包括:
- 通过检查代码,确保工具链和目标平台兼容
target_compatible_with
属性。
- 确保工具链和执行平台兼容,方法是
检查
exec_compatible_with
属性。
- 如果保留了多个工具链,请选择优先级最高的工具链(
一个是最先注册的)。
ToolchainResolutionFunction
调用
为所请求的每个工具链类型创建 SingleToolchainResolutionFunction
,以及
然后确定要使用的最佳执行平台。
- 首先,移除所有没有有效
每个请求的工具链类型的工具链。
- 如果有多个执行平台,请选择优先级最高的
一个(最先注册的那个)。
- 如果执行平台已由工具链设置
系统会先选择此项,如下所述。
如工具链和配置中所述,
从目标到工具链的依赖项使用一种特殊配置,
会强制两者的执行平台相同。尽管名称
“工具链转换”功能,则不会以配置的形式实现
而是作为一个特殊的子类
ConfiguredTargetKey
,调用
ToolchainDependencyConfiguredTargetKey
。
除了 ConfiguredTargetKey
中的其他数据之外,此子类还存储
执行平台的标签。当ToolchainResolutionFunction
:
考虑使用哪个执行平台、如果强制执行平台
来自 ToolchainDependencyConfiguredTargetKey
才有效,即使
如果不是最高优先级,则会发生此错误。
注意:如果强制执行平台无效(因为没有
有效工具链,或者由于来自规则或目标的执行限制),
则将使用优先级最高的有效执行平台。
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-08-13。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"没有我需要的信息"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"太复杂/步骤太多"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"内容需要更新"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻译问题"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"示例/代码问题"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"其他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"易于理解"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"解决了我的问题"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"其他"
}]
{"lastModified": "\u6700\u540e\u66f4\u65b0\u65f6\u95f4 (UTC)\uff1a2024-08-13\u3002"}
[[["易于理解","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):2024-08-13。"],[],[]]