【问题标题】:Specify Doxygen parameters through command line通过命令行指定 Doxygen 参数
【发布时间】:2012-06-17 10:30:36
【问题描述】:

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

doxygen -g "parameter modification here"
doxygen Doxyfile

感谢任何提示!

【问题讨论】:

    标签: bash doxygen


    【解决方案1】:

    查看常见问题解答中第 17 题的答案:http://www.doxygen.nl/manual/faq.html#faq_cmdline,为方便起见,在下面重复:

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

    不是通过命令行选项,但 doxygen 可以从标准输入读取,所以你可以通过它管道。下面是一个示例,如何从命令行覆盖配置文件中的选项(假设是 UNIX 环境):

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

    对于 Windows,以下操作也可以:

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

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

    【讨论】:

    • 然后归结为 rtfm :-) 不能直接将选项传递给脚本有点奇怪。我会将此视为答案,因为它有一个更详尽的示例。
    • @doxygen:谢谢。尽管如此,这是一种有问题的设计,因为它需要一个复杂的过程才能使其在不同的系统中工作(上面的例子很好地证明了这一点)。在一个可以在 Windows Linux 上运行的 make 文件中说...
    • 这是一个很好的解决缺失功能的方法。不幸的是,doxygen 似乎“忘记”了配置文件中的其他设置。例如,没有使用PROJECT_NAME(而是使用了“我的项目”); PROJECT_NUMBER 没有被使用(它是空白的);并且我试图更改的设置 (OUTPUT_DIRECTORY) 附加了其他路径...为什么不让我们在命令行上指定它?
    • @jww 对于 Unix:( cat Doxyfile ; echo "PROJECT_NUMBER=1.0" ; echo "PROJECT_NAME="MyProjectName") | doxygen -。这是你想要的吗?非常适合我。
    【解决方案2】:

    (这是accepted answer 的替代方案 - 很可能是上面的。)

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

    QUIET                  = NO
    

    QUIET                  = $(DOXYGEN_QUIET)
    

    然后我按如下方式调用 Doxygen

    DOXYGEN_QUIET=YES doxygen configfile
    

    env DOXYGEN_QUIET=YES doxygen configfile
    

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

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

    【讨论】:

    • 另见文档段落“我可以从命令行配置 doxygen 吗?”
    • 嗯,我不确定你想说什么。您指向的文档段落是公认的答案 - 重复了确切的段落。我发布了我的答案,因为我更喜欢它,尽管它可能对其他人有用。
    • 忽略已接受的答案,您对这个已接受答案的参考作为替代解决方案可能会更好。
    【解决方案3】:

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

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

    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
    猜你喜欢
    • 2018-08-21
    • 1970-01-01
    • 1970-01-01
    • 2012-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-16
    • 2014-10-17
    相关资源
    最近更新 更多