Я не могу запустить Doxygen через конфигурацию Meson.
Это связанный код в meson.build
:
doxygen = find_program('doxygen')
...
run_target('docs', command : 'doxygen ' + meson.source_root() + '/Doxyfile')
Исполняемый файл doxygen успешно найден:
Найдена программа doxygen: ДА (/ usr / bin / doxygen)
Однако при запуске я получаю это сообщение об ошибке:
[0/1] Запуск внешних командных документов.
Не удалось выполнить команду «doxygen / home / project / Doxyfile». Файл не найден.
Не удалось: мезон-документы
Запустив его вручную из командной строки, он работает:
/usr/bin/doxygen /home/project/Doxyfile
doxygen /home/project/Doxyfile
Что не так в моем meson.build
конфигурация?
По ссылке руководство,
команда это список содержащий команду для запуска и аргументы
перейти к нему. Каждый элемент списка может быть строкой или целью
Итак, в вашем случае вся строка обрабатывается мезоном как команда, то есть имя инструмента, а не как команда + аргументы. Итак, попробуйте это:
run_target('docs', command : ['doxygen', meson.source_root() + '/Doxyfile'])
Или может быть лучше использовать непосредственно результат find_program ():
doxygen = find_program('doxygen', required : false)
if doxygen.found()
message('Doxygen found')
run_target('docs', command : [doxygen, meson.source_root() + '/Doxyfile'])
else
warning('Documentation disabled without doxygen')
endif
Обратите внимание, что если вы хотите улучшить генерацию документов с поддержкой Doxyfile.in, взгляните на custom_target () вместо этого и пример, как этот.
Других решений пока нет …