通过命令行指定Doxygen参数

Pot*_*ers 30 bash doxygen

好吧,我正在创建一个脚本,使用Doxygen为我的项目自动生成文档,这似乎是一个很棒的工具.
我不清楚的是,如果用户可以使用指定直接参数,例如项目名称,项目描述等,通过设置它们除了命令:

doxygen -g "parameter modification here"
doxygen Doxyfile
Run Code Online (Sandbox Code Playgroud)

任何提示赞赏!

dox*_*gen 48

请查看FAQ中的问题17的答案:http://www.doxygen.org/faq.html,为方便起见,在下面重复:

我可以从命令行配置doxygen吗?

不是通过命令行选项,但是doxygen可以从stdin中读取,因此您可以通过它来管理事物.以下是如何从命令行覆盖配置文件中的选项的示例(假设是UNIX环境):

( cat Doxyfile ; echo "PROJECT_NUMBER=1.0" ) | doxygen -
Run Code Online (Sandbox Code Playgroud)

对于Windows,以下内容也是如此:

( type Doxyfile & echo PROJECT_NUMBER=1.0 ) | doxygen.exe -
Run Code Online (Sandbox Code Playgroud)

如果指定了多个具有相同名称的选项,那么doxygen将使用最后一个.要附加到现有选项,您可以使用+ =运算符.

  • 它归结为rtfm然后:-)你不能直接将选项传递给脚本有点奇怪.我会将此视为答案,因为它有一个稍微更全面的例子. (3认同)

han*_*sfn 7

(这是公认答案的替代方法-很有可能是上面的方法。)

我的首选解决方案是在配置文件中使用环境变量。让我们以“ QUIET”为例:在配置文件中,我替换

QUIET                  = NO
Run Code Online (Sandbox Code Playgroud)

QUIET                  = $(DOXYGEN_QUIET)
Run Code Online (Sandbox Code Playgroud)

然后我按如下方式称呼Doxygen

DOXYGEN_QUIET=YES doxygen configfile
Run Code Online (Sandbox Code Playgroud)

要么

env DOXYGEN_QUIET=YES doxygen configfile
Run Code Online (Sandbox Code Playgroud)

如果在(Bash)脚本中使用。当然,您也可以导出变量DOXYGEN_QUIET,因此不必在每次运行时都键入它。

PS!我有一个运行多个Doxygen作业的Bash脚本,它使用标准的-q选项通过设置DOXYGEN_QUIET安静地运行这些作业。我还使用与环境变量相同的技巧设置了PROJECT_NAME。


Chr*_*ris 6

据我所知,这是不可能的:通过配置文件或GUI 配置 doxygen构建(这比尝试记住命令行选项名称容易得多).doxygen --help在命令行输入和doxygen使用文档表明,所有命令行选项都设置了要读取的配置文件(并允许用户获取布局文件等).

从命令行修改配置选项的一种方法是使用类似(未经测试)的方法将选项附加到配置文件:

echo "INPUT = some file" >> Doxyfile
Run Code Online (Sandbox Code Playgroud)

这将附加INPUT = some file到您Doxyfile和任何较早的值INPUT被忽略.如果你想附加一个INPUT你可以使用的项目

echo "INPUT += some file" >> Doxyfile
Run Code Online (Sandbox Code Playgroud)

请注意+=.这尊重INPUT文件中先前设置的值.

您可以随时使用sed查找和替换选项,而不是附加到配置文件.