1# Documentation-related CMake configuration 2 3set(doc_dir "${PROJECT_SOURCE_DIR}/doc") 4set(DOC_INSTALL_DIR "share/doc/libogdf" CACHE PATH "Installation path of OGDF documentation") 5mark_as_advanced(DOC_INSTALL_DIR) 6 7file(GLOB_RECURSE example_files "${doc_dir}/*.txt" "${doc_dir}/*.bench" "${doc_dir}/*.gml") 8install(DIRECTORY doc/examples/ 9 DESTINATION ${EXAMPLES_INSTALL_DIR} 10 FILES_MATCHING 11 PATTERN "*.cpp" 12 PATTERN "*.txt" 13 PATTERN "*.gml" 14 PATTERN "*.bench" 15 PATTERN "output-*" EXCLUDE) 16 17find_package(Doxygen) 18if(DOXYGEN_FOUND) 19 if(DOXYGEN_VERSION VERSION_LESS 1.8.6) 20 message(WARNING "Doxygen version >= 1.8.6 is necessary to build the documentation correctly.") 21 endif() 22 23 add_custom_target(doc ${DOXYGEN_EXECUTABLE} ${doc_dir}/ogdf-doxygen.cfg WORKING_DIRECTORY ${doc_dir}) 24 option(DOC_INSTALL "Whether we want to install documentation. Makes doc part of the default target." OFF) 25 26 if(DOC_INSTALL) 27 set(doxystamp "${PROJECT_BINARY_DIR}/doxygen.stamp") 28 file(GLOB_RECURSE doc_files ${doc_dir}/*.md ${doc_dir}/*.dox) 29 add_custom_command(OUTPUT "${doxystamp}" 30 DEPENDS ${doc_files} ${ogdf_headers} 31 ${doc_dir}/ogdf-doxygen.cfg ${doc_dir}/ogdf-footer.html ${doc_dir}/ogdf-header.html ${doc_dir}/ogdf-layout.xml 32 COMMAND cmake --build . --target doc 33 COMMAND cmake -E touch "${doxystamp}" 34 COMMENT "Generating documentation if necessary" 35 VERBATIM) 36 add_custom_target(doc-check ALL DEPENDS "${doxystamp}") 37 38 install(DIRECTORY doc/html DESTINATION "${DOC_INSTALL_DIR}") 39 install(FILES LICENSE.txt LICENSE_GPL_v2.txt LICENSE_GPL_v3.txt DESTINATION "${DOC_INSTALL_DIR}") 40 endif() 41else() 42 message(WARNING "Doxygen not found. Documentation cannot be built.") 43endif() 44