aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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
+