]> rtime.felk.cvut.cz Git - opencv.git/blob - opencv/doc/CMakeLists.txt
fixed opencv.pdf generation using makefile (thanks to JIA PEI)
[opencv.git] / opencv / doc / CMakeLists.txt
1 #
2 #  CMake file for OpenCV docs
3 #
4
5 file(GLOB FILES_DOC *.htm *.txt *.jpg *.png *.pdf)
6 file(GLOB FILES_DOC_PAPERS papers/*.pdf papers/*.ps)
7 file(GLOB FILES_DOC_VS vidsurv/*.doc)
8 file(GLOB FILES_TEX *.tex *.sty *.bib go)
9 file(GLOB FILES_TEX_PICS pics/*.png pics/*.jpg)
10 file(GLOB_RECURSE FILES_PLASTEX plastex/*)
11
12 if(BUILD_LATEX_DOCS AND PDFLATEX_COMPILER)
13         
14 project(opencv_refman)
15
16 set(refman_copied_srcs)
17
18 #foreach(f ${refman_m4_srcs})
19 #    get_filename_component(basef ${f} NAME_WE)
20 #    set(outputf ${CMAKE_CURRENT_BINARY_DIR}/${basef}-c.tex)
21 #    add_custom_command(
22 #        OUTPUT ${outputf}
23 #        DEPENDS ${f}
24 #        COMMAND m4
25 #        ARGS -DTARGET_LANGUAGE=c ${f} > ${outputf}
26 #        WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
27 #        VERBATIM
28 #        )
29 #    list(APPEND refman_copied_srcs ${outputf})
30 #endforeach()
31
32 foreach(f ${FILES_TEX})
33     get_filename_component(basef ${f} NAME)
34     set(outputf ${CMAKE_CURRENT_BINARY_DIR}/${basef})
35     add_custom_command(
36         OUTPUT ${outputf}
37         DEPENDS ${f}
38         COMMAND ${CMAKE_COMMAND}
39         ARGS -E copy ${f} ${outputf}
40         WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
41     list(APPEND refman_copied_srcs ${outputf})
42 endforeach()
43
44 set(pdflatex_args -interaction=batchmode
45 "\"\\newcommand{\\genc}{true}\\newcommand{\\genpy}{true}\\newcommand{\\targetlang}{c}\\input{opencv.tex}\"")
46
47 add_custom_command(
48   OUTPUT    ${CMAKE_CURRENT_BINARY_DIR}/opencv.aux
49   DEPENDS   ${refman_copied_srcs}
50   COMMAND   ${PDFLATEX_COMPILER}
51   ARGS      ${pdflatex_args}
52   COMMENT   "Latex (first pass)"
53   WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
54   )
55
56 add_custom_command(
57   OUTPUT    ${CMAKE_CURRENT_BINARY_DIR}/opencv.bbl
58   DEPENDS   ${CMAKE_CURRENT_BINARY_DIR}/opencv.aux
59   COMMAND   ${BIBTEX_COMPILER}
60   ARGS      ${CMAKE_CURRENT_BINARY_DIR}/opencv
61   COMMENT   "Bibtex"
62   WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
63   )
64
65 add_custom_command(
66   OUTPUT    ${CMAKE_CURRENT_BINARY_DIR}/opencv.pdf
67   DEPENDS   ${CMAKE_CURRENT_BINARY_DIR}/opencv.bbl
68   COMMAND   ${PDFLATEX_COMPILER}
69   ARGS      ${pdflatex_args}
70   COMMENT   "Latex (second pass)"
71   WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
72   )
73
74 add_custom_command(
75   OUTPUT    ${CMAKE_CURRENT_BINARY_DIR}/opencv.log
76   DEPENDS   ${CMAKE_CURRENT_BINARY_DIR}/opencv.bbl
77             ${CMAKE_CURRENT_BINARY_DIR}/opencv.pdf
78   COMMAND   ${PDFLATEX_COMPILER}
79   ARGS      ${pdflatex_args}
80   COMMENT   "Latex (third pass)"
81   WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
82   )
83
84 set(PICS_OUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/pics")
85 message(STATUS "Copying pictures to the build directory")
86 make_directory(${PICS_OUT_DIR})
87
88 file(GLOB pics RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}/pics" pics/*.jpg pics/*.png)
89
90 foreach(p ${pics})
91     configure_file(
92            "pics/${p}"
93            "${PICS_OUT_DIR}/${p}"
94            COPYONLY)
95 endforeach()
96
97 #add_custom_target(MakePicsLink
98 #   COMMAND ln -sf ${CMAKE_CURRENT_SOURCE_DIR}/pics ${CMAKE_CURRENT_BINARY_DIR}/pics
99 #   )
100   
101 # Eventually trigger the whole process
102 add_custom_target(ReferenceManual ALL echo
103    DEPENDS   ${CMAKE_CURRENT_BINARY_DIR}/opencv.log
104    )
105
106 #add_dependencies(ReferenceManual MakePicsLink)
107
108 install(FILES "${CMAKE_CURRENT_BINARY_DIR}/opencv.pdf"
109         DESTINATION "${OPENCV_DOC_INSTALL_PATH}" COMPONENT main)
110         
111 endif() # BUILD_LATEX_DOCS AND PDFLATEX_COMPILER
112         
113 install(FILES ${FILES_DOC} DESTINATION "${OPENCV_DOC_INSTALL_PATH}" COMPONENT main)
114 install(FILES ${FILES_DOC_PAPERS} DESTINATION "${OPENCV_DOC_INSTALL_PATH}/papers" COMPONENT main)
115 install(FILES ${FILES_DOC_VS} DESTINATION "${OPENCV_DOC_INSTALL_PATH}/vidsurv" COMPONENT main)