Немного предыстории: я использую Meson для встроенного проекта C. У меня он работает (пример), но он не очень чистый.
Конкретная проблема, которую я хотел бы решить, - это включение вневременного пакета поддержки платы (BSP) - дерева заголовков и файлов C, которые действуют как код инициализации и абстракции для конкретной платформы.
Раньше я копировал заголовки из BSP, предоставленного поставщиком, в свой проект по мере необходимости, что действительно работало, но у этого есть недостатки, наиболее важным из которых является отсутствие воспроизводимости. Кроме того, это вызывает дублирование кода и затрудняет отслеживание того, откуда возникла конкретная ошибка, если ошибка находится в BSP.
Способы, которые я пробовал:
Используйте параметр в
meson_options.txt
, чтобы сообщить Meson, где находится BSP на диске черезmeson configure
. Проблема с этим методом заключается в том, что Meson выдает ошибку во время установки, потому что параметры не могут быть установлены до тех пор, пока установка не будет завершена, и поэтому он не может найти необходимые каталоги и отказывается продолжить.Используйте подпроект и повторите описанное выше - это вызывает ту же проблему.
В идеале я хотел бы, чтобы конечный пользователь мог установить путь BSP с помощью meson configure
, вместо того, чтобы когда-либо редактировать описание сборки (весь смысл Meson - быть удобным для пользователя!).
Это возможно? Если это невозможно, почему и существуют ли альтернативные / общепринятые способы сделать это, о которых я должен знать?