Вопрос по doxygen, bash – Укажите параметры Doxygen в командной строке

30

Ну, я создаю сценарий для автоматического создания документации для моих проектов с помощью Doxygen, который выглядит как отличный инструмент.
Что мне неясно, так это то, что пользователь может напрямую указать параметры, такие как имя проекта, описание проекта и т. Д., Установив их помимо команды

doxygen -g "parameter modification here"
doxygen Doxyfile

Любые советы приветствуются!

Ваш Ответ

3   ответа
6

конфигурационный файл или с графическим интерфейсом (что гораздо проще, чем пытаться запомнить имена параметров командной строки). Typingdoxygen --help в командной строке и документации дляиспользование кислорода Предположим, что все параметры командной строки устанавливают, какой файл конфигурации читать (и позволяют пользователю получать файлы макета и т.п.).

Один из способов изменить параметры конфигурации из командной строки - добавить параметры в файл конфигурации, используя что-то вроде (не проверено):

echo "INPUT = some file" >> Doxyfile

Это добавитINPUT = some file на вашDoxyfile и любые более ранние значенияINPUT игнорируются Если вы хотите добавить элемент вINPUT вы могли бы использовать

echo "INPUT += some file" >> Doxyfile

Обратите внимание на+=, Это уважаетINPUT значения, установленные ранее в файле.

Вместо добавления в файл конфигурации вы всегда можете использоватьsed найти и заменить варианты.

Это то, что я в итоге делал с sed. Замена текста, например sed -i 's / OPTIMIZE_OUTPUT_FOR_C = NO / OPTIMIZE_OUTPUT_FOR_C = YES / g'; Doxyfile Potney Switters
47

http://www.doxygen.org/faq.html, повторяется ниже для удобства:

Can I configure doxygen from the command line?

Не через параметры командной строки, но doxygen может читать из stdin, так что вы можете передавать данные через него. Вот пример того, как переопределить параметр в файле конфигурации из командной строки (при условии, что в среде UNIX):

( cat Doxyfile ; echo "PROJECT_NUMBER=1.0" ) | doxygen -

Для Windows следующее будет делать то же самое:

( type Doxyfile & echo PROJECT_NUMBER=1.0 ) | doxygen.exe -

Если указано несколько опций с одним и тем же именем, то doxygen будет использовать последний вариант. Для добавления к существующей опции вы можете использовать оператор + =.

Тогда все сводится к rtfm :-) Это довольно странно, что вы не можете напрямую передавать опции в скрипт. Я рассмотрю это как ответ, поскольку у него есть немного более тщательный пример. Potney Switters
@jww Для Unix:( cat Doxyfile ; echo "PROJECT_NUMBER=1.0" ; echo "PROJECT_NAME="MyProjectName") | doxygen - , Это то, что вы хотели? Отлично работает для меня
@doxygen: спасибо. Тем не менее, это довольно сомнительный дизайн, поскольку для его работы в разных системах требуется пройти через обручи (что довольно хорошо доказано в приведенном выше примере). Скажите в файле make, который должен работать в Windowsand Linux ...
Это хорошее решение для отсутствующей функции. К сожалению, похожеdoxygen & Quot; забывает & Quot; другие настройки в файле конфигурации. Например,PROJECT_NAME не использовался (вместо этого использовался «Мой проект»);PROJECT_NUMBER не использовался (был пустым); и настройки я пытался изменить (OUTPUT_DIRECTORY) к нему добавлены другие пути ... Почему бы просто не позволить нам указать его в командной строке?
5

принятый ответ - скорее всего выше.)

Мое предпочтительное решение - использовать переменные окружения в файле конфигурации. Давайте возьмем "тихий" в качестве примера: в файле конфигурации я заменяю

QUIET                  = NO

с

QUIET                  = $(DOXYGEN_QUIET)

Затем я называю Doxygen следующим образом

DOXYGEN_QUIET=YES doxygen configfile

или же

env DOXYGEN_QUIET=YES doxygen configfile

если используется внутри (Bash) скрипта. Конечно, вы также можете экспортировать переменную DOXYGEN_QUIET, чтобы вам не приходилось вводить ее для каждого прогона.

PS! У меня есть скрипт Bash, который запускает несколько заданий Doxygen, и он использует стандартную опцию -q для тихого запуска заданий, установив DOXYGEN_QUIET. Я также установил PROJECT_NAME, используя тот же трюк с переменной среды.

См. Также параграф документации «Могу ли я настроить doxygen из командной строки?»
Хм, я не уверен, что вы пытаетесь сказать. Пункт документации, на который вы указываете, является принятым ответом с точным повторением параграфа. Я опубликовал свой ответ, потому что я предпочитаю его, и хотя он может быть полезен для других людей.
Возможно - сделано.
Не обращайте внимания на принятый ответ, ссылка от вас на этот принятый ответ как альтернативное решение могла бы быть лучше.

Похожие вопросы