]> rtime.felk.cvut.cz Git - opencv.git/commitdiff
CMake scripts can now build the new OpenCV LaTeX docs
authorvp153 <vp153@73c94f0f-984f-4a5f-82bc-2d8db8d8ee08>
Wed, 29 Jul 2009 14:43:16 +0000 (14:43 +0000)
committervp153 <vp153@73c94f0f-984f-4a5f-82bc-2d8db8d8ee08>
Wed, 29 Jul 2009 14:43:16 +0000 (14:43 +0000)
git-svn-id: https://code.ros.org/svn/opencv/trunk@1993 73c94f0f-984f-4a5f-82bc-2d8db8d8ee08

opencv/CMakeLists.txt
opencv/OpenCVFindLATEX.cmake [new file with mode: 0644]
opencv/doc2/CMakeLists.txt [new file with mode: 0644]

index f55653376b3ea6a54582f6e784e241f22614f8b8..b4040d1dcbc00a23f8857b41c3c1581e96683f00 100644 (file)
@@ -328,46 +328,46 @@ if(UNIX)
         CHECK_INCLUDE_FILE(pthread.h HAVE_LIBPTHREAD)
 
         if(WITH_XINE)
-        CHECK_MODULE(libxine HAVE_XINE)
+            CHECK_MODULE(libxine HAVE_XINE)
         else()
-          set(HAVE_XINE FALSE)
+            set(HAVE_XINE FALSE)
         endif()
         if(WITH_V4L)
-         CHECK_MODULE(libv4l1 HAVE_LIBV4L)
-          CHECK_INCLUDE_FILE(linux/videodev.h HAVE_CAMV4L)
-          CHECK_INCLUDE_FILE(linux/videodev2.h HAVE_CAMV4L2)
+            CHECK_MODULE(libv4l1 HAVE_LIBV4L)
+            CHECK_INCLUDE_FILE(linux/videodev.h HAVE_CAMV4L)
+            CHECK_INCLUDE_FILE(linux/videodev2.h HAVE_CAMV4L2)
         else()
-          set(HAVE_LIBV4L FALSE)
-          set(HAVE_CAMV4L FALSE)
-          set(HAVE_CAMV4L2 FALSE)
+            set(HAVE_LIBV4L FALSE)
+            set(HAVE_CAMV4L FALSE)
+            set(HAVE_CAMV4L2 FALSE)
         endif()
 
-       if(NOT OPENCV_BUILD_3RDPARTY_LIBS)
-          if(WITH_PNG)
-           include(FindPNG)
-           if(PNG_FOUND)
-             CHECK_INCLUDE_FILE(${PNG_PNG_INCLUDE_DIR}/png.h HAVE_PNG_H)
-             CHECK_INCLUDE_FILE(${PNG_PNG_INCLUDE_DIR}/libpng/png.h HAVE_LIBPNG_PNG_H)
-           endif()
-          else()
-            set(PNG_FOUND FALSE)
-          endif()
-          if(WITH_TIFF)
-            include(FindTIFF)
-          else()
-            set(TIFF_FOUND FALSE)
-          endif()
-          if(WITH_JASPER)
-           include(FindJasper)
-          else()
-            set(JASPER_FOUND FALSE)
-          endif()          
-          if(WITH_JPEG)
-           include(FindJPEG)
-          else()
-            set(JPEG_FOUND FALSE)
-          endif()
-       endif()
+        if(NOT OPENCV_BUILD_3RDPARTY_LIBS)
+            if(WITH_PNG)
+                include(FindPNG)
+                if(PNG_FOUND)
+                    CHECK_INCLUDE_FILE(${PNG_PNG_INCLUDE_DIR}/png.h HAVE_PNG_H)
+                    CHECK_INCLUDE_FILE(${PNG_PNG_INCLUDE_DIR}/libpng/png.h HAVE_LIBPNG_PNG_H)
+                endif()
+            else()
+                set(PNG_FOUND FALSE)
+            endif()
+            if(WITH_TIFF)
+                include(FindTIFF)
+            else()
+                set(TIFF_FOUND FALSE)
+            endif()
+            if(WITH_JASPER)
+                include(FindJasper)
+            else()
+                set(JASPER_FOUND FALSE)
+            endif()          
+            if(WITH_JPEG)
+                include(FindJPEG)
+            else()
+                set(JPEG_FOUND FALSE)
+            endif()
+        endif()
         
         set(OPENCV_LINKER_LIBS dl m pthread rt)
     else()
@@ -439,6 +439,10 @@ endif()
 
 endif()
 
+if(UNIX OR APPLE)
+    set(BUILD_LATEX_DOCS OFF CACHE BOOL "Build LaTeX OpenCV Documentation")
+endif()
+
 # ----------------------------------------------------------------------------
 #                              UPDATE CONFIG FILES & SCRIPTS:
 #
@@ -654,6 +658,14 @@ endif()
 add_subdirectory(interfaces)
 add_subdirectory(3rdparty)
 
+if(BUILD_LATEX_DOCS)
+    include(OpenCVFindLATEX.cmake REQUIRED)
+    if(PDFLATEX_COMPILER)
+        message(STATUS "PDF LaTeX found!")
+        add_subdirectory(doc2)
+    endif()
+endif()
+
 # --------------------------------------------------------------------------------------------
 #   Installation for CMake Module:  OpenCVConfig.cmake
 #  Part 1/3: ${BIN_DIR}/OpenCVConfig.cmake              -> For use *without* "make install"
@@ -870,6 +882,11 @@ message(STATUS "    Use IPP:                   1")
 else()
 message(STATUS "    Use IPP:                   0")
 endif()
+if(BUILD_LATEX_DOCS AND PDFLATEX_COMPILER)
+message(STATUS "    Build Documentation        1")
+else()
+message(STATUS "    Build Documentation        0")
+endif()
 message(STATUS "")
 message(STATUS "    Install path:              ${CMAKE_INSTALL_PREFIX}")
 message(STATUS "")
diff --git a/opencv/OpenCVFindLATEX.cmake b/opencv/OpenCVFindLATEX.cmake
new file mode 100644 (file)
index 0000000..392d2a8
--- /dev/null
@@ -0,0 +1,114 @@
+# - Find Latex
+# This module finds if Latex is installed and determines where the
+# executables are. This code sets the following variables:
+#  
+#  LATEX_COMPILER:       path to the LaTeX compiler
+#  PDFLATEX_COMPILER:    path to the PdfLaTeX compiler
+#  BIBTEX_COMPILER:      path to the BibTeX compiler
+#  MAKEINDEX_COMPILER:   path to the MakeIndex compiler
+#  DVIPS_CONVERTER:      path to the DVIPS converter
+#  PS2PDF_CONVERTER:     path to the PS2PDF converter
+#  LATEX2HTML_CONVERTER: path to the LaTeX2Html converter 
+#
+
+IF (WIN32)
+
+  # Try to find the MikTex binary path (look for its package manager).
+
+  FIND_PATH(MIKTEX_BINARY_PATH mpm.exe
+    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MiK\\MiKTeX\\CurrentVersion\\MiKTeX;Install Root]/miktex/bin"
+    DOC 
+    "Path to the MikTex binary directory."
+  )
+  MARK_AS_ADVANCED(MIKTEX_BINARY_PATH)
+
+  # Try to find the GhostScript binary path (look for gswin32).
+
+  GET_FILENAME_COMPONENT(GHOSTSCRIPT_BINARY_PATH_FROM_REGISTERY_8_00
+     "[HKEY_LOCAL_MACHINE\\SOFTWARE\\AFPL Ghostscript\\8.00;GS_DLL]" PATH
+  )
+
+  GET_FILENAME_COMPONENT(GHOSTSCRIPT_BINARY_PATH_FROM_REGISTERY_7_04
+     "[HKEY_LOCAL_MACHINE\\SOFTWARE\\AFPL Ghostscript\\7.04;GS_DLL]" PATH
+  )
+
+  FIND_PATH(GHOSTSCRIPT_BINARY_PATH gswin32.exe
+    ${GHOSTSCRIPT_BINARY_PATH_FROM_REGISTERY_8_00}
+    ${GHOSTSCRIPT_BINARY_PATH_FROM_REGISTERY_7_04}
+    DOC "Path to the GhostScript binary directory."
+  )
+  MARK_AS_ADVANCED(GHOSTSCRIPT_BINARY_PATH)
+
+  FIND_PATH(GHOSTSCRIPT_LIBRARY_PATH ps2pdf13.bat
+    "${GHOSTSCRIPT_BINARY_PATH}/../lib"
+    DOC "Path to the GhostScript library directory."
+  )
+  MARK_AS_ADVANCED(GHOSTSCRIPT_LIBRARY_PATH)
+
+ENDIF (WIN32)
+
+FIND_PROGRAM(LATEX_COMPILER
+  NAMES latex
+  PATHS ${MIKTEX_BINARY_PATH}
+        /usr/bin /usr/texbin
+)
+
+FIND_PROGRAM(PDFLATEX_COMPILER
+  NAMES pdflatex
+  PATHS ${MIKTEX_BINARY_PATH}
+        /usr/bin /usr/texbin
+)
+
+FIND_PROGRAM(BIBTEX_COMPILER
+  NAMES bibtex
+  PATHS ${MIKTEX_BINARY_PATH}
+        /usr/bin /usr/texbin
+)
+
+FIND_PROGRAM(MAKEINDEX_COMPILER
+  NAMES makeindex
+  PATHS ${MIKTEX_BINARY_PATH}
+        /usr/bin /usr/texbin
+)
+
+FIND_PROGRAM(DVIPS_CONVERTER
+  NAMES dvips
+  PATHS ${MIKTEX_BINARY_PATH}
+        /usr/bin /usr/texbin
+)
+
+FIND_PROGRAM(DVIPDF_CONVERTER
+  NAMES dvipdfm dvipdft dvipdf
+  PATHS ${MIKTEX_BINARY_PATH}
+        /usr/bin /usr/texbin
+)
+
+IF (WIN32)
+  FIND_PROGRAM(PS2PDF_CONVERTER
+    NAMES ps2pdf14.bat
+    PATHS ${GHOSTSCRIPT_LIBRARY_PATH}
+  )
+ELSE (WIN32)
+  FIND_PROGRAM(PS2PDF_CONVERTER
+    NAMES ps2pdf14 ps2pdf
+    PATHS /usr/bin /usr/texbin
+  )
+ENDIF (WIN32)
+
+FIND_PROGRAM(LATEX2HTML_CONVERTER
+  NAMES latex2html
+  PATHS ${MIKTEX_BINARY_PATH}
+        /usr/bin /usr/texbin
+)
+
+
+MARK_AS_ADVANCED(
+  LATEX_COMPILER
+  PDFLATEX_COMPILER
+  BIBTEX_COMPILER
+  MAKEINDEX_COMPILER
+  DVIPS_CONVERTER
+  DVIPDF_CONVERTER
+  PS2PDF_CONVERTER
+  LATEX2HTML_CONVERTER
+)
diff --git a/opencv/doc2/CMakeLists.txt b/opencv/doc2/CMakeLists.txt
new file mode 100644 (file)
index 0000000..7115151
--- /dev/null
@@ -0,0 +1,80 @@
+project(opencv_refman)
+
+set(refman_m4_srcs CxCore.tex.m4 CvReference.tex.m4 HighGui.tex.m4)
+set(refman_srcs CvAux.tex MachineLearning.tex opencv.tex opencv.sty helvetica.sty opencv.bib)
+set(refman_copied_srcs)
+
+foreach(f ${refman_m4_srcs})
+    get_filename_component(basef ${f} NAME_WE)
+    set(outputf ${CMAKE_CURRENT_BINARY_DIR}/${basef}-c.tex)
+    add_custom_command(
+        OUTPUT ${outputf}
+        DEPENDS ${f}
+        COMMAND m4
+        ARGS -DTARGET_LANGUAGE=c ${f} > ${outputf}
+        WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+        VERBATIM
+        )
+    list(APPEND refman_copied_srcs ${outputf})
+endforeach()
+
+foreach(f ${refman_srcs})
+    set(outputf ${CMAKE_CURRENT_BINARY_DIR}/${f})
+    add_custom_command(
+        OUTPUT ${outputf}
+        DEPENDS ${f}
+        COMMAND ${CMAKE_COMMAND}
+        ARGS -E copy ${f} ${outputf}
+        WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
+    list(APPEND refman_copied_srcs ${outputf})
+endforeach()
+
+set(pdflatex_args -interaction=batchmode "'\\newcommand{\\genc}{true}\\newcommand{\\genpy}{true}\\input{opencv.tex}'")
+
+add_custom_command(
+  OUTPUT    ${CMAKE_CURRENT_BINARY_DIR}/opencv.aux
+  DEPENDS   ${refman_copied_srcs}
+  COMMAND   ${PDFLATEX_COMPILER}
+  ARGS      ${pdflatex_args}
+  COMMENT   "Latex (first pass)"
+  WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+  )
+
+add_custom_command(
+  OUTPUT    ${CMAKE_CURRENT_BINARY_DIR}/opencv.bbl
+  DEPENDS   ${CMAKE_CURRENT_BINARY_DIR}/opencv.aux
+  COMMAND   ${BIBTEX_COMPILER}
+  ARGS      ${CMAKE_CURRENT_BINARY_DIR}/opencv
+  COMMENT   "Bibtex"
+  WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+  )
+
+add_custom_command(
+  OUTPUT    ${CMAKE_CURRENT_BINARY_DIR}/opencv.pdf
+  DEPENDS   ${CMAKE_CURRENT_BINARY_DIR}/opencv.bbl
+  COMMAND   ${PDFLATEX_COMPILER}
+  ARGS      ${pdflatex_args}
+  COMMENT   "Latex (second pass)"
+  WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+  )
+
+add_custom_command(
+  OUTPUT    ${CMAKE_CURRENT_BINARY_DIR}/opencv.log
+  DEPENDS   ${CMAKE_CURRENT_BINARY_DIR}/opencv.bbl
+            ${CMAKE_CURRENT_BINARY_DIR}/opencv.pdf
+  COMMAND   ${PDFLATEX_COMPILER}
+  ARGS      ${pdflatex_args}
+  COMMENT   "Latex (third pass)"
+  WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+  )
+
+add_custom_target(MakePicsLink
+   COMMAND ln -sf ${CMAKE_CURRENT_SOURCE_DIR}/pics ${CMAKE_CURRENT_BINARY_DIR}/pics
+   )
+  
+# Eventually trigger the whole process
+add_custom_target(ReferenceManual ALL echo
+   DEPENDS   ${CMAKE_CURRENT_BINARY_DIR}/opencv.log
+   )
+
+add_dependencies(ReferenceManual MakePicsLink)