CMakeLists.txt 1.0 KB

123456789101112131415161718192021222324252627
  1. find_package(Doxygen)
  2. IF(NOT DOXYGEN_FOUND)
  3. MESSAGE(STATUS "No Doxygen found. Documentation won't be built")
  4. ELSE()
  5. file(GLOB SOURCES ${CMAKE_CURRENT_LIST_DIR}/../include/*)
  6. file(GLOB MARKDOWN_DOC ${CMAKE_CURRENT_LIST_DIR}/../doc/*.md)
  7. list(APPEND MARKDOWN_DOC ${CMAKE_CURRENT_LIST_DIR}/../readme.md)
  8. CONFIGURE_FILE(Doxyfile.in Doxyfile @ONLY)
  9. CONFIGURE_FILE(Doxyfile.zh-cn.in Doxyfile.zh-cn @ONLY)
  10. file(GLOB DOXYFILES ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile*)
  11. add_custom_command(OUTPUT html
  12. COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
  13. COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile.zh-cn
  14. COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_CURRENT_BINARY_DIR}/html
  15. DEPENDS ${MARKDOWN_DOC} ${SOURCES} ${DOXYFILES}
  16. WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/../
  17. )
  18. add_custom_target(doc ALL DEPENDS html)
  19. install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html
  20. DESTINATION ${DOC_INSTALL_DIR}
  21. COMPONENT doc)
  22. ENDIF()