diff --git a/CMakeLists.txt b/CMakeLists.txt index c4e03c93..a661cb2a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -41,16 +41,17 @@ add_subdirectory(openvpn/ovpnagent/mac) if (ENABLE_DOXYGEN) # Exclude some project specific directories set(DOXYGEN_EXCLUDE_PATTERNS - ${CMAKE_BINARY_DIR}/test/unittests/googletest-* - ${PROJECT_SOURCE_DIR}/deps/* - ${PROJECT_SOURCE_DIR}/test/unittests/googletest-*) + "*/vcpkg_installed/*" + "*/googletest-src/*" + "${PROJECT_SOURCE_DIR}/deps/*") # Use README.rst as the Doxygen main page # Due to some doxygen oddities, it rejects processing README.rst, but a .md file is fine # So we copy it into our build tree as a .md file and use that - file(COPY "${CMAKE_SOURCE_DIR}/README.rst" DESTINATION "${CMAKE_BINARY_DIR}/doxygen") - file(RENAME "${CMAKE_BINARY_DIR}/doxygen/README.rst" "${CMAKE_BINARY_DIR}/doxygen/mainpage.md") - set(DOXYGEN_USE_MDFILE_AS_MAINPAGE "${CMAKE_BINARY_DIR}/doxygen/mainpage.md") + configure_file("${CMAKE_CURRENT_SOURCE_DIR}/README.rst" + "${CMAKE_CURRENT_BINARY_DIR}/doxygen/mainpage.md" + COPYONLY) + set(DOXYGEN_USE_MDFILE_AS_MAINPAGE "${CMAKE_CURRENT_BINARY_DIR}/doxygen/mainpage.md") configure_doxygen("OpenVPN 3 Core Library" "doxygen/core") endif () diff --git a/cmake/ovpn-doxygen.cmake b/cmake/ovpn-doxygen.cmake index 7db87470..b321a4a6 100644 --- a/cmake/ovpn-doxygen.cmake +++ b/cmake/ovpn-doxygen.cmake @@ -7,22 +7,24 @@ function(configure_doxygen projname outputdir) # OpenVPN Logo file(WRITE - "${CMAKE_BINARY_DIR}/doxygen/openvpn-logo.svg" + "${CMAKE_CURRENT_BINARY_DIR}/doxygen/openvpn-logo.svg" "") set(DOXYGEN_PROJECT_NAME "${projname}") - set(DOXYGEN_PROJECT_LOGO "${CMAKE_BINARY_DIR}/doxygen/openvpn-logo.svg") + set(DOXYGEN_PROJECT_LOGO "${CMAKE_CURRENT_BINARY_DIR}/doxygen/openvpn-logo.svg") set(DOXYGEN_PROJECT_NUMBER "") set(DOXYGEN_OUTPUT_DIRECTORY "${outputdir}") set(DOXYGEN_GENERATE_HTML YES) set(DOXYGEN_EXTRACT_ALL YES) set(DOXYGEN_EXTRACT_PRIVATE YES) set(DOXYGEN_EXTRACT_STATIC YES) + set(DOXYGEN_NUM_PROC_THREADS 0) set(DOXYGEN_CALL_GRAPH "NO" CACHE STRING "Generate call graph images (value: YES/NO)") set(DOXYGEN_CALLER_GRAPH "YES" CACHE STRING "Generate caller graph images (value: YES/NO)") set(DOXYGEN_FILE_PATTERNS *.c *.h *.cc *.hh *.cpp *.hpp *.java *.i *.md *.rst) doxygen_add_docs(doxygen ALL - WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" + "${DOXYGEN_USE_MDFILE_AS_MAINPAGE}" "${CMAKE_CURRENT_SOURCE_DIR}" + WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" COMMENT "Generate Doxygen documentation") -endfunction () \ No newline at end of file +endfunction ()