CMakeLists.txt 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. FIND_PACKAGE( Doxygen QUIET)
  2. IF( DOXYGEN_FOUND )
  3. IF( DOXYGEN_DOT_FOUND )
  4. # Automatically generate documentation at build time
  5. SET(all_arg)
  6. IF (DOCUMENTATION_TARGET_IN_ALL)
  7. SET(all_arg "ALL")
  8. ENDIF()
  9. #
  10. # User documentation
  11. #
  12. SET( CTK_USER_DOCUMENTATION "NO" )
  13. SET( CTK_ADDITIONAL_EXCLUDE_PATTERN "*_p.h\ *Private.*" )
  14. SET( CTK_DOCUMENTATION_HTML_TARZ TRUE)
  15. CONFIGURE_FILE( Doxyfile.txt.in
  16. ${CMAKE_CURRENT_BINARY_DIR}/UserDoxyfile.txt
  17. )
  18. CONFIGURE_FILE(
  19. ${CMAKE_CURRENT_SOURCE_DIR}/generate_doc.cmake.in
  20. ${CMAKE_CURRENT_BINARY_DIR}/generate_userdoc.cmake
  21. @ONLY
  22. )
  23. SET(userdoc_output "${CMAKE_CURRENT_BINARY_DIR}/doc/html/index.html")
  24. # Run doxygen as a custom command driven by a custom target.
  25. ADD_CUSTOM_COMMAND(
  26. OUTPUT ${userdoc_output}
  27. COMMAND ${CMAKE_COMMAND} -P "${CMAKE_CURRENT_BINARY_DIR}/generate_userdoc.cmake"
  28. DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/generate_userdoc.cmake"
  29. "${CMAKE_CURRENT_BINARY_DIR}/UserDoxyfile.txt"
  30. )
  31. ADD_CUSTOM_TARGET(doc ${all_arg} DEPENDS ${userdoc_output})
  32. SET_TARGET_PROPERTIES(doc PROPERTIES LABELS Documentation)
  33. #
  34. # Dev documentation
  35. #
  36. SET( CTK_USER_DOCUMENTATION "YES" )
  37. SET( CTK_ADDITIONAL_EXCLUDE_PATTERN "" )
  38. CONFIGURE_FILE( Doxyfile.txt.in
  39. ${CMAKE_CURRENT_BINARY_DIR}/DevDoxyfile.txt
  40. )
  41. ADD_CUSTOM_TARGET( doc-dev
  42. ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/DevDoxyfile.txt
  43. DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/DevDoxyfile.txt
  44. )
  45. SET_TARGET_PROPERTIES(doc-dev PROPERTIES LABELS Documentation)
  46. ELSE( DOXYGEN_DOT_FOUND )
  47. MESSAGE( WARNING
  48. "Warning: Dot not found - Documentation will not be created"
  49. )
  50. ENDIF( DOXYGEN_DOT_FOUND )
  51. ENDIF( DOXYGEN_FOUND )