X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=doc%2FCMakeLists.txt;h=ed5cb44cdcaa4da0ca9e90b081b2fd2adbd7b716;hb=e9fc08a52acaf34bdcc0e04b7f716f0a3fb2b846;hp=aadbadbae5c33c3eb3e3bb7ecb7f9f3406e540eb;hpb=3afd3b1afd711fff415f4cb0eebd9a015abaa1d8;p=openjpeg.git diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt index aadbadba..ed5cb44c 100644 --- a/doc/CMakeLists.txt +++ b/doc/CMakeLists.txt @@ -1,15 +1,52 @@ -FIND_PACKAGE(Doxygen) -# -IF(DOXYGEN_EXECUTABLE) -# The Doxyfile.dox is poorly defined and produce output -# in the source dir -ADD_CUSTOM_TARGET(doxygen -# By default doxygen target is added to the 'all' target. Project is small -# thus running doxygen is not too time consuming - ALL - ${DOXYGEN} - ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.dox - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} -) -ENDIF(DOXYGEN_EXECUTABLE) +# Generate target to build the html documentation through CMake tool +# After having configured the project with the BUILD_DOC option you can run make doc +# to generate the html documentation in the doc/html repository of the build folder. +# Try to find the doxygen tool +find_package(Doxygen) + +if(DOXYGEN_FOUND) + # Configure the doxygen config file with variable from CMake and move it + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.dox.cmake.in + ${CMAKE_BINARY_DIR}/doc/Doxyfile-html.dox @ONLY) + + # Configure the html mainpage file of the doxygen documentation with variable + # from CMake and move it + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/mainpage.dox.in + ${CMAKE_BINARY_DIR}/doc/mainpage.dox @ONLY) + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/openjpip.dox.in + ${CMAKE_BINARY_DIR}/doc/openjpip.dox @ONLY) + # copy png file to make local (binary tree) documentation valid: + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/jpip_architect.png + ${CMAKE_BINARY_DIR}/doc/html/jpip_architect.png COPYONLY) + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/jpip_protocol.png + ${CMAKE_BINARY_DIR}/doc/html/jpip_protocol.png COPYONLY) + + file(GLOB headers + ${OPENJPEG_SOURCE_DIR}/src/lib/openjp2/*.h + ${OPENJPEG_SOURCE_DIR}/src/lib/openjp2/*.c + ${OPENJPEG_SOURCE_DIR}/src/lib/openjpip/*.h + ${OPENJPEG_SOURCE_DIR}/src/lib/openjpip/*.c + ) + # Generate new target to build the html documentation + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/html/index.html + COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_BINARY_DIR}/doc/Doxyfile-html.dox + DEPENDS ${CMAKE_BINARY_DIR}/doc/Doxyfile-html.dox + ${CMAKE_BINARY_DIR}/doc/mainpage.dox + ${CMAKE_BINARY_DIR}/doc/openjpip.dox + ${headers} + ) + add_custom_target(doc ALL + DEPENDS ${CMAKE_BINARY_DIR}/doc/html/index.html + COMMENT "Building doxygen documentation" + ) + + # install HTML documentation (install png files too): + install(DIRECTORY ${CMAKE_BINARY_DIR}/doc/html + DESTINATION ${CMAKE_INSTALL_DOCDIR} + PATTERN ".svn" EXCLUDE + ) +else() + message(STATUS "Doxygen not found, we cannot generate the documentation") +endif()