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()
  51. message( WARNING
  52. "Warning: Dot not found - Documentation will not be created"
  53. )
  54. endif()
  55. endif()