問題を解決する
ビルドが失敗した場合、build.rs
(ビルド時に任意の処理を行うプログラム)が原因である可能性があります。これは、ビルドの並列性と再現性を最大化するために静的で決定的なビルドルールを目指す gn
と ninja
の設計とは、基本的に矛盾しています。
一部の build.rs
アクションは自動的にサポートされますが、他のアクションには対応が必要です。
ビルド スクリプトの効果 | gn テンプレートによるサポート | 必要な作業 |
---|---|---|
rustc のバージョンを確認して機能を有効または無効にする | はい | なし |
プラットフォームまたは CPU を確認して機能を有効または無効にする | はい | なし |
Generating code | はい | あり - gnrt_config.toml で指定する |
C/C++ のビルド | いいえ | パッチを適用する |
その他の任意のアクション | いいえ | パッチを適用する |
幸い、ほとんどのクレートにはビルド スクリプトが含まれておらず、ほとんどのビルド スクリプトは上位 2 つのアクションのみを実行します。