IAP GITLAB

Skip to content
Snippets Groups Projects
CMakeLists.txt 1.24 KiB
Newer Older
ralfulrich's avatar
ralfulrich committed
find_package (Doxygen OPTIONAL_COMPONENTS dot mscgen dia)

if (DOXYGEN_FOUND)
  if (NOT DOXYGEN_DOT_EXECUTABLE)
    message (FATAL_ERROR "Found doxygen but not 'dot' command, please install graphviz or set DOXYGEN_DOT_EXECUTABLE")
  endif()

  set (DOXYGEN_IN ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in)
  set (DOXYGEN_OUT ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile)
  set (DOXYGEN_GENERATE_HTML YES)
  set (DOXYGEN_GENERATE_MAN YES)
  configure_file (${DOXYGEN_IN} ${DOXYGEN_OUT} @ONLY)
  message ("Start doxygen with \"make doxygen\"")
  
  # note the option ALL which allows to build the docs together with the application
  add_custom_target (doxygen # ALL
    COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYGEN_OUT}
    WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
    COMMENT "Generating API documentation with Doxygen"
    VERBATIM)

  add_custom_command(TARGET doxygen POST_BUILD
    COMMAND cd ${CMAKE_CURRENT_BINARY_DIR}/latex; pdflatex refman.tex
    )
  
  install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html DESTINATION share/doc OPTIONAL)
  install(FILES ${CMAKE_CURRENT_BINARY_DIR}/latex/refman.pdf DESTINATION share/doc OPTIONAL)
         
else (DOXYGEN_FOUND)
  
  message ("Doxygen need to be installed to generate the doxygen documentation")
  
endif (DOXYGEN_FOUND)