summaryrefslogtreecommitdiff
path: root/openjpeg/doc/CMakeLists.txt
blob: d4f3ddbe6293325161ba955e9d766e53ffa80a31 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# 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 share/doc
    PATTERN ".svn" EXCLUDE
  )
else()
  message(STATUS "Doxygen not found, we cannot generate the documentation")
endif()