конфигурация — Невозможно запустить Doxygen из Meson в проекте C ++

Я не могу запустить 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 конфигурация?

3

Решение

По ссылке руководство,

команда это список содержащий команду для запуска и аргументы
перейти к нему. Каждый элемент списка может быть строкой или целью

Итак, в вашем случае вся строка обрабатывается мезоном как команда, то есть имя инструмента, а не как команда + аргументы. Итак, попробуйте это:

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 () вместо этого и пример, как этот.

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]