diff --git a/CMakeLists.txt b/CMakeLists.txt index f8d6158575..6db75f2397 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1129,6 +1129,7 @@ message(STATUS "Ready to parse QMCPACK source tree") add_subdirectory(external_codes) add_subdirectory(src) +add_subdirectory(doxygen) if(NOT QMC_BUILD_SANDBOX_ONLY) if(NOT QMC_NO_SLOW_CUSTOM_TESTING_COMMANDS) diff --git a/doxygen/CMakeLists.txt b/doxygen/CMakeLists.txt new file mode 100644 index 0000000000..bb10608f38 --- /dev/null +++ b/doxygen/CMakeLists.txt @@ -0,0 +1,58 @@ +find_package(Doxygen) +if(NOT DOXYGEN_FOUND) + message(STATUS "The qmcpack_doxygen target for the QMCPACK developer/API " + "documentation requires doxygen and (optionally) dot from graphviz." + ) + return() +endif() + +set(DOXYGEN_PROJECT_NAME QMCPACK) +set(DOXYGEN_FILE_PATTERNS *.h *.cpp *.doc) +set(DOXYGEN_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") +set(DOXYGEN_STRIP_FROM_PATH docs src) +set(DOXYGEN_IMAGE_PATH + ${PROJECT_SOURCE_DIR} + ${PROJECT_SOURCE_DIR}/doxygen/images + "$(DOXYGEN_IMAGE_PATH)" +) +set(DOXYGEN_USE_MDFILE_AS_MAINPAGE ${PROJECT_SOURCE_DIR}/README.md) +set(DOXYGEN_TOC_INCLUDE_HEADINGS 0) +set(DOXYGEN_NUM_PROC_THREADS 0) +set(DOXYGEN_GENERATE_TREEVIEW YES) +set(DOXYGEN_TEMPLATE_RELATIONS YES) +set(DOXYGEN_EXTRACT_ALL YES) +set(DOXYGEN_EXTRACT_PRIVATE YES) +set(DOXYGEN_EXTRACT_STATIC YES) +set(DOXYGEN_SOURCE_BROWSER YES) +set(DOXYGEN_SHORT_NAMES YES) +set(DOXYGEN_JAVADOC_AUTOBRIEF YES) +set(DOXYGEN_DOT_IMAGE_FORMAT svg) +set(DOXYGEN_INTERACTIVE_SVG YES) +set(DOXYGEN_DISTRIBUTE_GROUP_DOC YES) +set(DOXYGEN_INLINE_GROUPED_CLASSES YES) +set(DOXYGEN_INLINE_SIMPLE_STRUCTS YES) +set(DOXYGEN_INLINE_SOURCES YES) +set(DOXYGEN_STRIP_CODE_COMMENTS NO) +set(DOXYGEN_HIDE_SCOPE_NAMES YES) +set(DOXYGEN_SHOW_INCLUDE_FILES NO) +set(DOXYGEN_REFERENCED_BY_RELATION YES) +set(DOXYGEN_REFERENCES_RELATION YES) +set(DOXYGEN_VERBATIM_HEADERS NO) +set(DOXYGEN_TOC_EXPAND YES) +set(DOXYGEN_MACRO_EXPANSION YES) +set(DOXYGEN_EXPAND_ONLY_PREDEF YES) +set(DOXYGEN_SEARCH_INCLUDES NO) +set(DOXYGEN_PREDEFINED DOXYGEN_SHOULD_SKIP_THIS) +set(DOXYGEN_DIRECTORY_GRAPH NO) +set(DOXYGEN_HTML_TIMESTAMP YES) +set(DOXYGEN_ENUM_VALUES_PER_LINE 1) +set(DOXYGEN_GENERATE_TAGFILE qmc_doxygen_tags) +set(DOXYGEN_CALL_GRAPH YES) + +doxygen_add_docs(qmcpack_doxygen + ${PROJECT_SOURCE_DIR}/src + ${PROJECT_BINARY_DIR}/src/config.h + ${PROJECT_SOURCE_DIR}/README.md + ${PROJECT_SOURCE_DIR}/CHANGELOG.md + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} +)