問題の解決
ビルドが失敗する場合、その原因は build.rs かもしれません。これは、ビルド時に任意の処理を行うプログラムです。これは、ビルドの並列性と再現性を最大化するために静的で決定論的なビルドルールを目指す gn と ninja の設計と根本的に相容れません。
一部の build.rs の処理は自動的にサポートされますが、それ以外は対応が必要です。
| ビルドスクリプトの効果 | 私たちの gn テンプレートでサポート | あなたに必要な作業 |
|---|---|---|
| 機能の有効/無効を切り替えるための rustc バージョン確認 | はい | なし |
| 機能の有効/無効を切り替えるためのプラットフォームまたは CPU の確認 | はい | なし |
| コード生成 | はい | はい - gnrt_config.toml で指定 |
| C/C++ のビルド | いいえ | それを回避するようにパッチを当てる |
| その他の任意の処理 | いいえ | それを回避するようにパッチを当てる |
幸いなことに、ほとんどのクレートにはビルドスクリプトが含まれておらず、また幸いなことに、ほとんどのビルドスクリプトは上の 2 つの処理しか行いません。