@@ -19,8 +19,11 @@ include(GNUInstallDirs)
1919# with OPENVDB_BUILD_DOCS=ON and either OPENVDB_BUILD_HOUDINI_PLUGIN=ON or
2020# USE_HOUDINI=ON will define Houdini_VERSION. If Houdini_VERSION is not set,
2121# all documentation is included.
22- option (OPENVDB_DOXYGEN_HOUDINI "Build Houdini documentation" ON )
2322option (OPENVDB_DOXYGEN_AX "Build AX documentation" ON )
23+ option (OPENVDB_DOXYGEN_HOUDINI "Build Houdini documentation" ON )
24+ option (OPENVDB_DOXYGEN_INTERNAL [=[
25+ Enable documentation of methods and classes which have been explicitly marked as internal
26+ ]=] OFF )
2427
2528find_package (Doxygen REQUIRED doxygen)
2629if (MINIMUM_DOXYGEN_VERSION)
@@ -59,10 +62,12 @@ set(DOXYGEN_FILE_PATTERNS *.h *h.in) # headers only
5962set (DOXYGEN_EXTENSION_MAPPING .in=C) # parse CMake config headers as C
6063set (DOXYGEN_IMAGE_PATH "doc/img" )
6164set (DOXYGEN_RECURSIVE NO )
65+ set (DOXYGEN_QUIET YES )
6266
6367set (DOXYGEN_GENERATE_HTML YES )
6468set (DOXYGEN_GENERATE_MAN NO )
6569set (DOXYGEN_GENERATE_LATEX NO )
70+ set (DOXYGEN_GENERATE_TODOLIST NO )
6671
6772set (DOXYGEN_HTML_COLORSTYLE_HUE 4)
6873set (DOXYGEN_HTML_COLORSTYLE_SAT 222)
@@ -72,18 +77,32 @@ set(DOXYGEN_EXTRACT_ALL YES)
7277set (DOXYGEN_EXTRACT_STATIC YES )
7378set (DOXYGEN_EXTRACT_LOCAL_CLASSES NO )
7479
80+ # Allow for root directory paths to be listed (e.g. openvdb/io/File.h)
81+ # Rather than just the file names (e.g. File.h). This makes it far
82+ # easier to navigate the docs
83+ set (DOXYGEN_FULL_PATH_NAMES YES )
84+ # Should be the same as the WORKING_DIRECTORY argument to doxygen_add_docs
85+ set (DOXYGEN_STRIP_FROM_PATH "${CMAKE_SOURCE_DIR} " )
86+ set (DOXYGEN_STRIP_FROM_INC_PATH
87+ "${CMAKE_SOURCE_DIR} /openvdb"
88+ "${CMAKE_SOURCE_DIR} /openvdb_ax"
89+ "${CMAKE_SOURCE_DIR} /openvdb_houdini" )
90+ # Shows which source files generated the respected doxygen docs
91+ # at the bottom of each html page. Don't bother listing these.
92+ set (DOXYGEN_SHOW_USED_FILES NO )
93+ # When doxygen adds the source code for each header (see VERBATIM_HEADERS)
94+ # don't remove the actual doxygen comments
95+ set (DOXYGEN_STRIP_CODE_COMMENTS NO )
96+ # Don't add an alpha index of all classes (it's not particularly useful)
7597set (DOXYGEN_ALPHABETICAL_INDEX NO )
7698set (DOXYGEN_DISTRIBUTE_GROUP_DOC YES )
77- set (DOXYGEN_FULL_PATH_NAMES NO )
78- set (DOXYGEN_GENERATE_TODOLIST NO )
7999set (DOXYGEN_HIDE_IN_BODY_DOCS YES )
80100set (DOXYGEN_HIDE_SCOPE_NAMES YES )
81101set (DOXYGEN_INLINE_INHERITED_MEMB YES )
82102set (DOXYGEN_MACRO_EXPANSION YES )
83- set (DOXYGEN_CLASS_DIAGRAMS NO ) # @todo use dot with class diagrams for relevant classes
84- set (DOXYGEN_ENABLED_SECTIONS "" )
103+ # @todo use dot with class diagrams for relevant classes
104+ set (DOXYGEN_CLASS_DIAGRAMS NO )
85105
86- set (DOXYGEN_QUIET YES )
87106
88107set (DOXYGEN_ALIASES
89108 [[ijk="(<i>i</i>, <i>j</i>, <i>k</i>)"]]
@@ -117,6 +136,12 @@ set(DOXYGEN_PREDEFINED
117136 [[__declspec(x):= __attribute__(x):=]]
118137 "OPENVDB_USE_LOG4CPLUS=" )
119138
139+ set (DOXYGEN_ENABLED_SECTIONS "" )
140+
141+ if (OPENVDB_DOXYGEN_INTERNAL)
142+ list (APPEND DOXYGEN_ENABLED_SECTIONS "OPENVDB_DOCS_INTERNAL" )
143+ endif ()
144+
120145if (OPENVDB_DOXYGEN_HOUDINI)
121146 # Append Houdini-specific settings to the Doxygen config file.
122147 if (Houdini_VERSION)
0 commit comments