summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJürgen Doser <jurgen.doser@gmail.com>2013-01-30 18:21:32 +0100
committerShadowNinja <shadowninja@minetest.net>2014-12-12 14:59:57 -0500
commit83830e8682de23840675a35daa386fa2820fbb7d (patch)
treee3ad73b461f1093c7f6d40969ef45056fa9083d5
parent8066743a8390b22cf515aaced0280ddb64b69cb1 (diff)
downloadminetest-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--.gitignore9
-rw-r--r--CMakeLists.txt11
-rw-r--r--doc/Doxyfile.in32
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
+