【发布时间】:2018-01-23 04:21:40
【问题描述】:
我正在尝试编写一个 Doxygen 文件过滤器,该过滤器位于 Windows 和 Linux 上的 Doxyfile 工作的子目录中。
Doxyfile
/scripts
myfilter
我似乎无法在 Windows 上使用正斜杠指定路径,除非它被引用:
"scripts/myfilter"
但是,尝试在 Doxyfile 中引用命令不起作用。
FILTER_PATTERNS = *.glsl=""scripts/runpython" scripts/doxygen-glslfilter.py"
在 Windows 上,您会收到暗示引号不存在的错误。
'scripts' 不是内部或外部命令、可运行程序或批处理文件。
Doxygen 使用 popen() 来运行这些命令,并会删除命令周围的引号,但它似乎并没有删除所有引号。
popen() 调用:
https://github.com/doxygen/doxygen/blob/master/src/definition.cpp#L745
过滤器名称引用条:
https://github.com/doxygen/doxygen/blob/master/src/util.cpp#L2458
但是,结果就像没有引号一样。
更新
我能够在 Doxygen 中获取命令日志记录,而且看起来多余的引号正在以一种奇怪的方式被剥离。可以看到命令前面怎么有空格。
Executing popen(` scripts/runpython scripts/doxygen-glslfilter.py "C:/dev/g3d/G3D10/data-files/shader/AlphaFilter.glsl"`)
更新
我提交了错误报告/功能请求,但我怀疑它会被阅读。
【问题讨论】:
-
您在双引号中使用双引号,从而相互抵消。试试
'"scripts/runpython" scripts/doxygen-glslfilter.py' -
类似问题:stackoverflow.com/questions/49750869/…。对于此拉取请求,已提交 703 (github.com/doxygen/doxygen/pull/703)。
-
pull request 703 已经集成到github上的master分支中了。
-
我添加了评论github.com/doxygen/doxygen/issues/6320#issuecomment-486666030。我无法使用 Windows 7 和 Doxygen 1.8.15 完成这项工作?有什么解决方法吗?