Merge pull request #1148 from hlef/master
[openjpeg.git] / doc / CMakeLists.txt
index 7169192751af6ef9b7503512010b52221496ecf9..d4f3ddbe6293325161ba955e9d766e53ffa80a31 100644 (file)
@@ -3,24 +3,50 @@
 # to generate the html documentation in the doc/html repository of the build folder.
 
 # Try to find the doxygen tool
-FIND_PACKAGE(Doxygen)
+find_package(Doxygen)
 
-IF(DOXYGEN_FOUND)
+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
+  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.cmake
+  # 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_TARGET(doc ALL
-    ${DOXYGEN_EXECUTABLE} ${CMAKE_BINARY_DIR}/doc/Doxyfile-html.dox)
-
-ELSE(DOXYGEN_FOUND)
-
-  MESSAGE(STATUS "Doxygen not found, we cannot generate the 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"
+  )
 
-ENDIF(DOXYGEN_FOUND)
+  # install HTML documentation (install png files too):
+  install(DIRECTORY ${CMAKE_BINARY_DIR}/doc/html
+    DESTINATION share/doc
+    PATTERN ".svn" EXCLUDE
+  )
+else()
+  message(STATUS "Doxygen not found, we cannot generate the documentation")
+endif()