Update to 2.0.0 tree from current Fremantle build
[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_m4_srcs CxCore.tex.m4 CvReference.tex.m4 HighGui.tex.m4)
17 set(refman_srcs CxCore.tex CvReference.tex HighGui.tex CxCore-cpp.tex Cv-cpp.tex CvAux.tex HighGui-cpp.tex MachineLearning.tex opencv.tex opencv.sty helvetica.sty opencv.bib)
18 set(refman_copied_srcs)
19
20 #foreach(f ${refman_m4_srcs})
21 #    get_filename_component(basef ${f} NAME_WE)
22 #    set(outputf ${CMAKE_CURRENT_BINARY_DIR}/${basef}-c.tex)
23 #    add_custom_command(
24 #        OUTPUT ${outputf}
25 #        DEPENDS ${f}
26 #        COMMAND m4
27 #        ARGS -DTARGET_LANGUAGE=c ${f} > ${outputf}
28 #        WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
29 #        VERBATIM
30 #        )
31 #    list(APPEND refman_copied_srcs ${outputf})
32 #endforeach()
33
34 foreach(f ${refman_srcs})
35     set(outputf ${CMAKE_CURRENT_BINARY_DIR}/${f})
36     add_custom_command(
37         OUTPUT ${outputf}
38         DEPENDS ${f}
39         COMMAND ${CMAKE_COMMAND}
40         ARGS -E copy ${f} ${outputf}
41         WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
42     list(APPEND refman_copied_srcs ${outputf})
43 endforeach()
44
45 set(pdflatex_args -interaction=batchmode
46 "\"\\newcommand{\\genc}{true}\\newcommand{\\genpy}{true}\\newcommand{\\targetlang}{c}\\input{opencv.tex}\"")
47
48 add_custom_command(
49   OUTPUT    ${CMAKE_CURRENT_BINARY_DIR}/opencv.aux
50   DEPENDS   ${refman_copied_srcs}
51   COMMAND   ${PDFLATEX_COMPILER}
52   ARGS      ${pdflatex_args}
53   COMMENT   "Latex (first pass)"
54   WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
55   )
56
57 add_custom_command(
58   OUTPUT    ${CMAKE_CURRENT_BINARY_DIR}/opencv.bbl
59   DEPENDS   ${CMAKE_CURRENT_BINARY_DIR}/opencv.aux
60   COMMAND   ${BIBTEX_COMPILER}
61   ARGS      ${CMAKE_CURRENT_BINARY_DIR}/opencv
62   COMMENT   "Bibtex"
63   WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
64   )
65
66 add_custom_command(
67   OUTPUT    ${CMAKE_CURRENT_BINARY_DIR}/opencv.pdf
68   DEPENDS   ${CMAKE_CURRENT_BINARY_DIR}/opencv.bbl
69   COMMAND   ${PDFLATEX_COMPILER}
70   ARGS      ${pdflatex_args}
71   COMMENT   "Latex (second pass)"
72   WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
73   )
74
75 add_custom_command(
76   OUTPUT    ${CMAKE_CURRENT_BINARY_DIR}/opencv.log
77   DEPENDS   ${CMAKE_CURRENT_BINARY_DIR}/opencv.bbl
78             ${CMAKE_CURRENT_BINARY_DIR}/opencv.pdf
79   COMMAND   ${PDFLATEX_COMPILER}
80   ARGS      ${pdflatex_args}
81   COMMENT   "Latex (third pass)"
82   WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
83   )
84
85 set(PICS_OUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/pics")
86 message(STATUS "Copying pictures to the build directory")
87 make_directory(${PICS_OUT_DIR})
88
89 file(GLOB pics RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}/pics" pics/*.jpg pics/*.png)
90
91 foreach(p ${pics})
92     configure_file(
93            "pics/${p}"
94            "${PICS_OUT_DIR}/${p}"
95            COPYONLY)
96 endforeach()
97
98 #add_custom_target(MakePicsLink
99 #   COMMAND ln -sf ${CMAKE_CURRENT_SOURCE_DIR}/pics ${CMAKE_CURRENT_BINARY_DIR}/pics
100 #   )
101   
102 # Eventually trigger the whole process
103 add_custom_target(ReferenceManual ALL echo
104    DEPENDS   ${CMAKE_CURRENT_BINARY_DIR}/opencv.log
105    )
106
107 #add_dependencies(ReferenceManual MakePicsLink)
108
109 install(FILES "${CMAKE_CURRENT_BINARY_DIR}/opencv.pdf"
110         DESTINATION "${OPENCV_DOC_INSTALL_PATH}" COMPONENT main)
111         
112 endif() # BUILD_LATEX_DOCS AND PDFLATEX_COMPILER
113         
114 install(FILES ${FILES_DOC} DESTINATION "${OPENCV_DOC_INSTALL_PATH}" COMPONENT main)
115 install(FILES ${FILES_DOC_PAPERS} DESTINATION "${OPENCV_DOC_INSTALL_PATH}/papers" COMPONENT main)
116 install(FILES ${FILES_DOC_VS} DESTINATION "${OPENCV_DOC_INSTALL_PATH}/vidsurv" COMPONENT main)