Решение проблем
Если сборка падает, причина может быть в build.rs: программах, которые делают что угодно во время сборки. Это принципиально расходится с дизайном gn и ninja, которые стремятся к статическим, детерминированным правилам сборки, чтобы максимизировать параллелизм и повторяемость сборок.
Некоторые действия build.rs поддерживаются автоматически; другие требуют вмешательства:
| эффект скрипта сборки | Поддерживается нашими шаблонами gn | Что нужно сделать вам |
|---|---|---|
| Проверка версии rustc для включения и отключения функций | Да | Нет |
| Проверка платформы или ЦП для включения и отключения функций | Да | Нет |
| Генерация кода | Да | Да — укажите в gnrt_config.toml |
| Сборка C/C++ | Нет | Обойти патчем |
| Произвольные другие действия | Нет | Обойти патчем |
К счастью, большинство крейтов не содержат скрипта сборки, а большинство скриптов сборки выполняют только два верхних действия.