BazelCon 2024 登録の受け付けを開始しました。
ツールチェーンの解決の実装の詳細
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
<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
は、実行プラットフォームごとに 1 つのツールチェーン タイプを解決します。つまり、
すべての実行プラットフォームで、使用すべき最適な登録済みのツールチェーンを
次の基準で判断します
- 以下を確認して、ツールチェーンとターゲット プラットフォームに互換性があることを確認する
target_compatible_with
属性。
- 次のようにして、ツールチェーンと実行プラットフォームに互換性があることを確認します。
exec_compatible_with
属性を確認します。
- 複数のツールチェーンが残っている場合は、最も優先度の高いツールチェーン(
。
ToolchainResolutionFunction
の呼び出し
リクエストされたツールチェーン タイプごとに SingleToolchainResolutionFunction
次に 使用する最適な実行プラットフォームを
決定します
- まず、有効な拡張子がない実行プラットフォームを
ツールチェーン タイプの変換が 1 つ必要です。
- 複数の実行プラットフォームが残っている場合は、最も優先度の高いものを選択する
(最初に登録されたもの)。
- 実行プラットフォームがツールチェーンによってすでに設定されている場合
以下で説明するように、最初にこのモードが選択されます。
ツールチェーンと構成で説明したように、
ターゲットからツールチェーンへの依存関係には、特別な構成を使用し、
両方で同じ実行プラットフォームが使用されます。名前には反して、
「ツールチェーンの移行」、これは構成として実装されていません。
代わりに、特別なサブクラスとして、
ConfiguredTargetKey
、呼び出された
ToolchainDependencyConfiguredTargetKey
。
このサブクラスは、ConfiguredTargetKey
の他のデータに加えて、
実行プラットフォームのラベルです。ToolchainResolutionFunction
が次と一致する場合
使用する実行プラットフォームを考慮します
ToolchainDependencyConfiguredTargetKey
から取得された ID が有効である場合も、
優先度が最も高い場合は
注: 強制実行プラットフォームが有効でない場合(強制実行プラットフォームが存在しないため)
有効なツールチェーン、またはルールまたはターゲットからの実行制約が原因です。
優先度の最も高い有効な実行プラットフォームが代わりに使用されます。
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2024-08-13 UTC。
[{
"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\u7d42\u66f4\u65b0\u65e5 2024-08-13 UTC\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"]],["最終更新日 2024-08-13 UTC。"],[],[]]