CMakeLists.txt 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  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. SET( CTK_ADDITIONAL_FILE_PATTERN "*.c \ *.cc \ *.cxx \ *.cpp \ *.c++ \ *.hxx \ *.hpp \ *.h++ \ *.txx \ *.C \ *.CC \ *.C++ \ *.moc" )
  39. CONFIGURE_FILE( Doxyfile.txt.in
  40. ${CMAKE_CURRENT_BINARY_DIR}/DevDoxyfile.txt
  41. )
  42. ADD_CUSTOM_TARGET( doc-dev
  43. ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/DevDoxyfile.txt
  44. DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/DevDoxyfile.txt
  45. )
  46. SET_TARGET_PROPERTIES(doc-dev PROPERTIES LABELS Documentation)
  47. ELSE( DOXYGEN_DOT_FOUND )
  48. MESSAGE( WARNING
  49. "Warning: Dot not found - Documentation will not be created"
  50. )
  51. ENDIF( DOXYGEN_DOT_FOUND )
  52. ENDIF( DOXYGEN_FOUND )