2
0

CMakeLists.txt 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. find_program(HAVE_DOXYGEN doxygen)
  2. if(NOT HAVE_DOXYGEN)
  3. message(FATAL_ERROR "*****************************************************
  4. Doxygen not found.
  5. Install it, or configure with -DBUILD_DOC=OFF
  6. *****************************************************"
  7. )
  8. endif()
  9. set(PQXXVERSION "${CMAKE_PROJECT_VERSION}")
  10. set(top_srcdir "${PROJECT_SOURCE_DIR}")
  11. set(PQXX_ABI "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}")
  12. set(PQXX_MAJOR "${PROJECT_VERSION_MAJOR}")
  13. set(PQXX_MINOR "${PROJECT_VERSION_MINOR}")
  14. find_program(HAVE_DOT dot)
  15. if(HAVE_DOT)
  16. set(HAVE_DOT YES)
  17. else()
  18. set(HAVE_DOT NO)
  19. endif()
  20. configure_file(Doxyfile.in Doxyfile)
  21. if(HAVE_DOXYGEN)
  22. file(
  23. GLOB DOXYGEN_SOURCES
  24. "${PROJECT_SOURCE_DIR}/include/pqxx/*.hxx"
  25. "${PROJECT_SOURCE_DIR}/include/pqxx/doc/*.md"
  26. "${PROJECT_SOURCE_DIR}/*.cxx"
  27. )
  28. set(DOXYGEN_STAMP_FILE "${CMAKE_CURRENT_BINARY_DIR}/doxygen.stamp")
  29. add_custom_command(OUTPUT ${DOXYGEN_STAMP_FILE}
  30. COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/html
  31. COMMAND doxygen Doxyfile
  32. COMMAND ${CMAKE_COMMAND} -E touch ${DOXYGEN_STAMP_FILE}
  33. DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile ${DOXYGEN_SOURCES}
  34. COMMENT "Generate API documentation"
  35. VERBATIM
  36. )
  37. add_custom_target(doxygen ALL
  38. DEPENDS ${DOXYGEN_STAMP_FILE}
  39. SOURCES ${DOXYGEN_SOURCES}
  40. )
  41. install(
  42. DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html
  43. DESTINATION ${CMAKE_INSTALL_DOCDIR}/html
  44. )
  45. endif()