我正在创建一个脚本,用于使用Doxygen自动生成我的项目文档,这似乎是一个很棒的工具。
让我不明白的是,用户能否通过设置命令行参数直接指定项目名称、项目描述等参数。
doxygen -g "parameter modification here"
doxygen Doxyfile
有什么技巧会很受欢迎!
请参考FAQ中第17个问题的答案:http://www.doxygen.nl/manual/faq.html#faq_cmdline,下面是重复的部分:
不能通过命令行选项进行配置,但是doxygen可以从stdin读取,因此您可以通过管道将内容传递给它。以下是如何在命令行上覆盖配置文件中的选项的示例(假设为UNIX环境):
( cat Doxyfile ; echo "PROJECT_NUMBER=1.0" ) | doxygen -
对于Windows,以下代码将执行相同操作:
( type Doxyfile & echo PROJECT_NUMBER=1.0 ) | doxygen.exe -
如果指定了具有相同名称的多个选项,则Doxygen将使用最后一个选项。要附加到现有选项,您可以使用+=运算符。
(这是对被接受的答案的替代方案-很可能在上面。)
我喜欢使用配置文件中的环境变量作为我的首选解决方案。以 "QUIET" 为例,在配置文件中,我将
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。
GENERATE_MAN=YES doxygen configfile
将同时生成HTML和MAN文件。 - Mark Gatesdoxygen --help
以及Doxygen使用文档的文档表明,所有命令行选项都是设置读取哪个配置文件(并允许用户获取布局文件等)。
一种从命令行修改配置选项的方法是通过类似以下未经测试的方式将选项附加到配置文件中:
echo "INPUT = some file" >> Doxyfile
Doxyfile
中添加INPUT = some file
,而之前的任何INPUT
值都将被忽略。如果您想要追加一个项目到INPUT
,您可以使用如下方法:echo "INPUT += some file" >> Doxyfile
+=
。这会保留文件中先前设置的 INPUT
值。sed
查找和替换选项。
doxygen
似乎会“忘记”配置文件中的其他设置。例如,*PROJECT_NAME
没有被使用(而是使用了“My Project”);PROJECT_NUMBER
没有被使用(它是空的);而我试图更改的设置(OUTPUT_DIRECTORY
*)还有其他路径附加到它上面...为什么不允许我们在命令行上指定呢? - jww( cat Doxyfile ; echo "PROJECT_NUMBER=1.0" ; echo "PROJECT_NAME="MyProjectName") | doxygen -
。这是你想要的吗?对我来说完美地运作。 - PiJ