From: Jürgen Doser Date: Wed, 30 Jan 2013 17:21:32 +0000 (+0100) Subject: Add basic support for generating API documentation using Doxygen X-Git-Tag: 0.4.11~47 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=83830e8682de23840675a35daa386fa2820fbb7d;p=oweals%2Fminetest.git 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. --- diff --git a/.gitignore b/.gitignore index 98a7f35b9..680a44158 100644 --- a/.gitignore +++ b/.gitignore @@ -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 - - diff --git a/CMakeLists.txt b/CMakeLists.txt index 5e234eedf..6bfd4c911 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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) + diff --git a/doc/Doxyfile.in b/doc/Doxyfile.in new file mode 100644 index 000000000..062fc67a5 --- /dev/null +++ b/doc/Doxyfile.in @@ -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 +