CMakeLists.txt 2.1 KB

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