CMakeLists.txt 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. ########################################################################
  2. # Optional doxygen generation
  3. ########################################################################
  4. find_package(Doxygen)
  5. if (DOXYGEN_DOT_FOUND)
  6. set(HAVE_DOT YES)
  7. else()
  8. set(HAVE_DOT NO)
  9. endif()
  10. ########################################################################
  11. ## Feature registration
  12. ########################################################################
  13. cmake_dependent_option(ENABLE_LIBRARY_DOCS "Enable Pothos Library.Docs component" ON "ENABLE_LIBRARY;DOXYGEN_FOUND" OFF)
  14. add_feature_info(" Docs" ENABLE_LIBRARY_DOCS "Doxygen generated docs for Pothos library")
  15. if (NOT ENABLE_LIBRARY_DOCS)
  16. return()
  17. endif()
  18. #header sources used in the generate rule
  19. file(GLOB_RECURSE POTHOS_INCLUDES ${PROJECT_SOURCE_DIR}/include/*.hpp)
  20. #formated list of sources to parse
  21. string(REPLACE ";" " " DOXYGEN_SOURCES "${POTHOS_INCLUDES}")
  22. #Configure doxygen config file
  23. configure_file(
  24. ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in
  25. ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
  26. @ONLY)
  27. #Create doxygen generation build rules
  28. if (DOXYGEN_FOUND)
  29. set(CMAKE_CURRENT_BINARY_DIR_DOXYGEN ${CMAKE_CURRENT_BINARY_DIR}/html)
  30. add_custom_command(
  31. OUTPUT ${CMAKE_CURRENT_BINARY_DIR_DOXYGEN}
  32. DEPENDS ${POTHOS_INCLUDES} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
  33. COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
  34. COMMENT "Generating documentation with doxygen"
  35. )
  36. add_custom_target(docs ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR_DOXYGEN})
  37. endif()