Add basic support for generating API documentation using Doxygen

If CMake is run and Doxygen is found, add a make target called "doc",
which builds API documention in doc/html. This target is not included
in the default "all" target, you have to explicitly run "make doc" to
generate the documentation.

If graphviz is installed, in particular, if the "dot" binary is found,
doxygen is configured to generate various kinds of diagrams. Note that
due to this, the first run of doxygen can take a while.
master
Jürgen Doser 2013-01-30 18:21:32 +01:00 committed by ShadowNinja
parent 8066743a83
commit 83830e8682
3 changed files with 49 additions and 3 deletions

9
.gitignore vendored
View File

@ -26,6 +26,11 @@ tags
minetest.conf
debug.txt
## Doxygen files
doc/Doxyfile
doc/html/
doc/doxygen_*
## Build files
CMakeFiles/*
src/CMakeFiles/*
@ -64,7 +69,7 @@ locale/
*.layout
*.o
#build variants
## Build variants
build/android/assets
build/android/bin
build/android/Debug
@ -75,5 +80,3 @@ build/android/libs
build/android/obj
timestamp

View File

@ -229,3 +229,14 @@ endif()
include(CPack)
# Add a target to generate API documentation with Doxygen
find_package(Doxygen)
if(DOXYGEN_FOUND)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/doc/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/doc/Doxyfile @ONLY)
add_custom_target(doc
${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/doc/Doxyfile
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doc
COMMENT "Generating API documentation with Doxygen" VERBATIM
)
endif(DOXYGEN_FOUND)

32
doc/Doxyfile.in Normal file
View File

@ -0,0 +1,32 @@
DOXYFILE_ENCODING = UTF-8
PROJECT_NAME = "Minetest"
PROJECT_NUMBER = @VERSION_STRING@
STRIP_FROM_PATH = @CMAKE_CURRENT_SOURCE_DIR@/src
JAVADOC_AUTOBRIEF = YES
EXTRACT_ALL = YES
EXTRACT_PRIVATE = YES
EXTRACT_STATIC = YES
SORT_MEMBERS_CTORS_1ST = YES
WARN_IF_UNDOCUMENTED = NO
INPUT = @CMAKE_CURRENT_SOURCE_DIR@/src/ \
@CMAKE_CURRENT_SOURCE_DIR@/src/util \
@CMAKE_CURRENT_SOURCE_DIR@/src/script \
@CMAKE_CURRENT_SOURCE_DIR@/src/script/common \
@CMAKE_CURRENT_SOURCE_DIR@/src/script/cpp_api \
@CMAKE_CURRENT_SOURCE_DIR@/src/script/lua_api
RECURSIVE = NO
REFERENCED_BY_RELATION = YES
REFERENCES_RELATION = YES
GENERATE_LATEX = NO
PAPER_TYPE = a4wide
HAVE_DOT = @DOXYGEN_DOT_FOUND@
CALL_GRAPH = YES
CALLER_GRAPH = YES
MAX_DOT_GRAPH_DEPTH = 3
DOT_MULTI_TARGETS = YES