doxygen正在生成空文档

时间:2017-03-29 12:06:21

标签: c++ doxygen code-documentation

我在C ++(以及一些CUDA)中有一个source repository,我想要给它做氧化。我已经对一些 - 但不是全部 - 代码添加了doxygen评论;生成一个Doxygen配置文件,并运行doxygen来查看部分输出。

我得到的是:什么都没有。空。

生成一个主页面,它只是没有显示任何内容 - 即使我专门设置了EXTRACT_ALL = YES(在使用EXTRACT_ALL = NO获得空结果之后。

为什么没有生成任何内容以及如何修复它?

备注:

  • 所有标头文件都有@file条评论。
  • 我已经为允许的模式添加了与CUDA相关的扩展
  • 我有一个问题的早期版本,没有答案,之后情况有所改变(所以我删除了那个)。
  • 即使从doxygen.cfg中移除大部分行(见下文),问题仍然存在。


doxygen.cfg (缩短版本,过滤掉评论):

DOXYFILE_ENCODING      = UTF-8
PROJECT_NAME           = "cuda-api-wrappers"
PROJECT_BRIEF          = "Thin C++-flavored wrappers for the CUDA Runtime API"
OUTPUT_DIRECTORY       = docs
ALLOW_UNICODE_NAMES    = YES
OUTPUT_LANGUAGE        = English
BRIEF_MEMBER_DESC      = YES
REPEAT_BRIEF           = YES
FULL_PATH_NAMES        = YES
JAVADOC_AUTOBRIEF      = YES
QT_AUTOBRIEF           = NO
MULTILINE_CPP_IS_BRIEF = NO
INHERIT_DOCS           = YES
SEPARATE_MEMBER_PAGES  = NO
TAB_SIZE               = 4
EXTENSION_MAPPING      = cu=C++ cuh=C++ cuhpp=C++ hpp=C++
MARKDOWN_SUPPORT       = YES
AUTOLINK_SUPPORT       = YES
BUILTIN_STL_SUPPORT    = YES
SUBGROUPING            = YES
LOOKUP_CACHE_SIZE      = 2
EXTRACT_ALL            = YES
EXTRACT_LOCAL_CLASSES  = YES
HIDE_UNDOC_MEMBERS     = NO
HIDE_UNDOC_CLASSES     = NO
HIDE_FRIEND_COMPOUNDS  = NO
CASE_SENSE_NAMES       = YES
HIDE_SCOPE_NAMES       = NO
HIDE_COMPOUND_REFERENCE= NO
SHOW_INCLUDE_FILES     = YES
SHOW_GROUPED_MEMB_INC  = NO
FORCE_LOCAL_INCLUDES   = NO
INLINE_INFO            = YES
SORT_MEMBER_DOCS       = YES
STRICT_PROTO_MATCHING  = NO
MAX_INITIALIZER_LINES  = 30
SHOW_USED_FILES        = YES
SHOW_FILES             = YES
SHOW_NAMESPACES        = YES
QUIET                  = NO
WARNINGS               = YES
WARN_IF_UNDOCUMENTED   = YES
WARN_IF_DOC_ERROR      = YES
WARN_NO_PARAMDOC       = NO
WARN_AS_ERROR          = NO
WARN_FORMAT            = "$file:$line: $text"
INPUT                  = src
INPUT_ENCODING         = UTF-8
FILE_PATTERNS          = *.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf, *.qsf, *.as *.js, *.cuh, *.cu, *.cuhpp
RECURSIVE              = YES

Doxygen控制台输出:

Adding custom extension mapping: .cu will be treated as language c++
Adding custom extension mapping: .cuh will be treated as language c++
Adding custom extension mapping: .cuhpp will be treated as language c++
Adding custom extension mapping: .hpp will be treated as language c++
Searching for include files...
Searching for example files...
Searching for images...
Searching for dot files...
Searching for msc files...
Searching for dia files...
Searching for files to exclude
Searching INPUT for files to process...
Searching for files in directory /home/eyalroz/src/mine/cuda-api-wrappers/src
Searching for files in directory /home/eyalroz/src/mine/cuda-api-wrappers/src/cuda
Searching for files in directory /home/eyalroz/src/mine/cuda-api-wrappers/src/cuda/api
Reading and parsing tag files
Parsing files
Building group list...
Building directory list...
Building namespace list...
Building file list...
Building class list...
Associating documentation with classes...
Computing nesting relations for classes...
Building example list...
Searching for enumerations...
Searching for documented typedefs...
Searching for members imported via using declarations...
Searching for included using directives...
Searching for documented variables...
Building interface member list...
Building member list...
Searching for friends...
Searching for documented defines...
Computing class inheritance relations...
Computing class usage relations...
Flushing cached template relations that have become invalid...
Creating members for template instances...
Computing class relations...
Add enum values to enums...
Searching for member function documentation...
Building page list...
Search for main page...
Computing page relations...
Determining the scope of groups...
Sorting lists...
Freeing entry tree
Determining which enums are documented
Computing member relations...
Building full member lists recursively...
Adding members to member groups.
Computing member references...
Inheriting documentation...
Generating disk names...
Adding source references...
Adding xrefitems...
Sorting member lists...
Computing dependencies between directories...
Generating citations page...
Counting data structures...
Resolving user defined references...
Finding anchors and sections in the documentation...
Transferring function references...
Combining using relations...
Adding members to index pages...
Generating style sheet...
Generating search indices...
Generating example documentation...
Generating file sources...
Generating file documentation...
Generating page documentation...
Generating group documentation...
Generating class documentation...
Generating namespace index...
Generating graph info page...
Generating directory documentation...
Generating index page...
Generating page index...
Generating module index...
Generating namespace index...
Generating namespace member index...
Generating annotated compound index...
Generating alphabetical compound index...
Generating hierarchical class index...
Generating graphical class hierarchy...
Generating member index...
Generating file index...
Generating file member index...
Generating example index...
finalizing index lists...
writing tag file...
Running dot...
lookup cache used 127/262144 hits=628 misses=194
finished...

1 个答案:

答案 0 :(得分:3)

TL; DR:删除FILE_PATTERNS变量中的逗号并使其以空格分隔。

所以,@ albert破解了它!这是谜题的缺失部分:Doxygen生成的配置文件说:

# If the value of the INPUT tag contains directories, you can use the
# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
# *.h) to filter out the source-files in the directories.
#
# Note that for custom extensions or not directly supported extensions you also
# need to set EXTENSION_MAPPING for the extension otherwise the files are not
# read by doxygen.
#
# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp,
# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h,
# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc,
# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f, *.for, *.tcl,
# *.vhd, *.vhdl, *.ucf, *.qsf, *.as and *.js.

FILE_PATTERNS          = 

这条评论具有误导性,因为它会为您提供以逗号分隔的列表,而实际上逗号不会被视为分隔符。如果您使用该列表(并且可能添加/更改它),例如在OP的示例中,Doxygen会看到一个模式列表,其中扩展名具有尾随,字符。而且 - 它并没有抱怨。它也不会抱怨忽略存储库中的所有文件 - 它最终会得到一个空的结果。

删除,个字符会导致生成非空文档。