c++ - 知道为什么 Doxygen 找到 version.h.in 但不将其解析为 C 或 C++?
问题描述
我有很多项目都有一个version.h.in
文件,CMake 将其转换为动态添加项目的当前版本。
这是一个例子version.h.in
:
#define LPP_VERSION_MAJOR @LPP_VERSION_MAJOR@
#define LPP_VERSION_MINOR @LPP_VERSION_MINOR@
#define LPP_VERSION_PATCH @LPP_VERSION_PATCH@
#define LPP_VERSION_BUILD @LPP_VERSION_BUILD@
#if LPP_VERSION_PATCH
#define LPP_VERSION_STRING "@LPP_VERSION_MAJOR@.@LPP_VERSION_MINOR@.@LPP_VERSION_PATCH@"
#else
#define LPP_VERSION_STRING "@LPP_VERSION_MAJOR@.@LPP_VERSION_MINOR@"
#endif
int get_major_version();
int get_release_version();
int get_patch_version();
char const * get_version_string();
不知何故,Doxygen 1.8.13 没有在这个文件中提取任何内容。看起来它被忽略了。
我使用EXTENSION_MAPPING
andFILE_PATTERNS
但它似乎没有帮助:
EXTENSION_MAPPING = h.in=C++ \
hpp.in=C++
FILE_PATTERNS = *.h \
*.h.in \
*.hpp \
*.hpp.in \
*.cpp \
*.c
我会错过什么吗?
请注意,该version.h.in
文件出现在 Doxygen 的输出中。所以FILE_PATTERNS
按预期工作。但是,它在文件中没有检测到任何内容。例如,我有一个\file
这样的条目:
/** \file
* \brief This library version information.
*
* ...snip...
*/
简短和完整的文件描述将被忽略。
重要提示:我正在尝试获取version.h.in
文件。我知道我可以改为告诉 Doxygen,version.h
但随后版本会在文档中更改,这不是我想要的。
更新
正如@anarthal 在评论中提到的那样,问题似乎是EXTENSION_MAPPING
需要一个扩展名。不是双重扩展。
我在 github 上提交了一个错误报告。
对于我的项目,我实际上可以使用.in
(即in=C++
),因为我只有 C++,但我希望这会在某个时候得到解决。
解决方案
推荐阅读
- c# - 为什么我的 Listview 多次显示相同的值?
- python - 熊猫:read_json urllib.error.URLError:
, 用于工作的代码 - android - 无法安装应用程序:INSTALL_FAILED_DEXOPT,Android 5.0 发生这种情况
- c# - Azure 搜索,将数组与给定数组匹配
- java - 如何在 Java 中构建一个非常简单的多线程管道?
- python-3.x - OSX Catalina GCC/PIP 问题
- json - 使用 Jmeter JSON Extractor 从具有顶级数组的 JSON 中提取值
- laravel - 将 Vue 变量或 Vue 组件返回给 Laravel Blade
- haskell - 模式匹配:使用占位符
- google-app-engine - 将数据从另一个 GCP 项目的 App Engine 搜索导入到 GCP 项目的 App Engine 搜索