FIND_PACKAGE( Doxygen QUIET) IF( DOXYGEN_FOUND ) IF( DOXYGEN_DOT_FOUND ) # Compile a doxygen input filter for processing CMake scripts INCLUDE(ctkFunctionCMakeDoxygenFilterCompile) ctkFunctionCMakeDoxygenFilterCompile(NAMESPACE "CMake") # Automatically generate documentation at build time SET(all_arg) IF (DOCUMENTATION_TARGET_IN_ALL) SET(all_arg "ALL") ENDIF() # # User documentation # SET( CTK_USER_DOCUMENTATION "NO" ) SET( CTK_ADDITIONAL_EXCLUDE_PATTERN "*_p.h\ *Private.*" ) SET( CTK_DOCUMENTATION_HTML_TARZ TRUE) CONFIGURE_FILE( Doxyfile.txt.in ${CMAKE_CURRENT_BINARY_DIR}/UserDoxyfile.txt ) CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/generate_doc.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/generate_userdoc.cmake @ONLY ) SET(userdoc_output "${CMAKE_CURRENT_BINARY_DIR}/doc/html/index.html") # Run doxygen as a custom command driven by a custom target. ADD_CUSTOM_COMMAND( OUTPUT ${userdoc_output} COMMAND ${CMAKE_COMMAND} -P "${CMAKE_CURRENT_BINARY_DIR}/generate_userdoc.cmake" DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/generate_userdoc.cmake" "${CMAKE_CURRENT_BINARY_DIR}/UserDoxyfile.txt" ) ADD_CUSTOM_TARGET(doc ${all_arg} DEPENDS ${userdoc_output}) SET_TARGET_PROPERTIES(doc PROPERTIES LABELS Documentation) # # Dev documentation # SET( CTK_USER_DOCUMENTATION "YES" ) SET( CTK_ADDITIONAL_EXCLUDE_PATTERN "" ) SET( CTK_ADDITIONAL_FILE_PATTERN "*.c \ *.cc \ *.cxx \ *.cpp \ *.c++ \ *.hxx \ *.hpp \ *.h++ \ *.txx \ *.C \ *.CC \ *.C++ \ *.moc" ) CONFIGURE_FILE( Doxyfile.txt.in ${CMAKE_CURRENT_BINARY_DIR}/DevDoxyfile.txt ) ADD_CUSTOM_TARGET( doc-dev ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/DevDoxyfile.txt DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/DevDoxyfile.txt ) SET_TARGET_PROPERTIES(doc-dev PROPERTIES LABELS Documentation) ELSE( DOXYGEN_DOT_FOUND ) MESSAGE( WARNING "Warning: Dot not found - Documentation will not be created" ) ENDIF( DOXYGEN_DOT_FOUND ) ENDIF( DOXYGEN_FOUND )