diff options
author | Jürgen Doser <jurgen.doser@gmail.com> | 2013-01-30 18:21:32 +0100 |
---|---|---|
committer | ShadowNinja <shadowninja@minetest.net> | 2014-12-12 14:59:57 -0500 |
commit | 83830e8682de23840675a35daa386fa2820fbb7d (patch) | |
tree | e3ad73b461f1093c7f6d40969ef45056fa9083d5 | |
parent | 8066743a8390b22cf515aaced0280ddb64b69cb1 (diff) | |
download | minetest-83830e8682de23840675a35daa386fa2820fbb7d.tar.gz minetest-83830e8682de23840675a35daa386fa2820fbb7d.tar.bz2 minetest-83830e8682de23840675a35daa386fa2820fbb7d.zip |
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.
-rw-r--r-- | .gitignore | 9 | ||||
-rw-r--r-- | CMakeLists.txt | 11 | ||||
-rw-r--r-- | doc/Doxyfile.in | 32 |
3 files changed, 49 insertions, 3 deletions
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 + |