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 +