]> rtime.felk.cvut.cz Git - opencv.git/commitdiff
- add WITH_* parameters to allow disabling linking to some libraries even if they...
authorbaeuml <baeuml@73c94f0f-984f-4a5f-82bc-2d8db8d8ee08>
Thu, 2 Jul 2009 09:37:20 +0000 (09:37 +0000)
committerbaeuml <baeuml@73c94f0f-984f-4a5f-82bc-2d8db8d8ee08>
Thu, 2 Jul 2009 09:37:20 +0000 (09:37 +0000)
- rename OPENCV_USE_* parameters to USE_* following standard naming conventions
(Thanks to Anuraag Agrawal for the patch)

git-svn-id: https://code.ros.org/svn/opencv/trunk@1899 73c94f0f-984f-4a5f-82bc-2d8db8d8ee08

opencv/CMakeLists.txt

index f01a220ac356395d663a5f397102a104ccd4e7d2..c9ae2f26d810a69f3e3b0d5b19d55e44bde0033f 100644 (file)
@@ -164,61 +164,78 @@ endif()
 #  Others: No
 # ===================================================
 if(MSVC)
-       set(DEFAULT_OPENCV_ENABLE_OPENMP ON)
+       set(DEFAULT_ENABLE_OPENMP ON)
 else()
-       set(DEFAULT_OPENCV_ENABLE_OPENMP OFF)
+       set(DEFAULT_ENABLE_OPENMP OFF)
 endif()
 
-set(OPENCV_ENABLE_OPENMP ${DEFAULT_OPENCV_ENABLE_OPENMP} CACHE BOOL "")
+set(ENABLE_OPENMP ${DEFAULT_ENABLE_OPENMP} CACHE BOOL "")
 
 if(CMAKE_COMPILER_IS_GNUCXX)
-    set(OPENCV_ENABLE_PROFILING OFF CACHE BOOL "Enable profiling in the GCC compiler (Add flags: -g -pg)")
-    set(OPENCV_USE_OMIT_FRAME_POINTER ON CACHE BOOL "Enable -fomit-frame-pointer for GCC")
+    set(ENABLE_PROFILING OFF CACHE BOOL "Enable profiling in the GCC compiler (Add flags: -g -pg)")
+    set(USE_OMIT_FRAME_POINTER ON CACHE BOOL "Enable -fomit-frame-pointer for GCC")
     if(${CMAKE_SYSTEM_PROCESSOR} MATCHES arm*)
         # We can use only -O2 because the -O3 causes gcc crash
-        set(OPENCV_USE_O2 ON CACHE BOOL "Enable -O2 for GCC")
-        set(OPENCV_USE_FAST_MATH ON CACHE BOOL "Enable -ffast-math for GCC")
+        set(USE_O2 ON CACHE BOOL "Enable -O2 for GCC")
+        set(USE_FAST_MATH ON CACHE BOOL "Enable -ffast-math for GCC")
     endif()
     if(${CMAKE_SYSTEM_PROCESSOR} MATCHES amd64*)
-        set(OPENCV_USE_O3 ON CACHE BOOL "Enable -O3 for GCC")
-        set(OPENCV_USE_FAST_MATH ON CACHE BOOL "Enable -ffast-math for GCC")
-        set(OPENCV_USE_MMX ON CACHE BOOL "Enable MMX for GCC")
-        set(OPENCV_USE_SSE ON CACHE BOOL "Enable SSE for GCC")
-        set(OPENCV_USE_SSE2 ON CACHE BOOL "Enable SSE2 for GCC")
-        set(OPENCV_USE_SSE3 ON CACHE BOOL "Enable SSE3 for GCC")
+        set(USE_O3 ON CACHE BOOL "Enable -O3 for GCC")
+        set(USE_FAST_MATH ON CACHE BOOL "Enable -ffast-math for GCC")
+        set(USE_MMX ON CACHE BOOL "Enable MMX for GCC")
+        set(USE_SSE ON CACHE BOOL "Enable SSE for GCC")
+        set(USE_SSE2 ON CACHE BOOL "Enable SSE2 for GCC")
+        set(USE_SSE3 ON CACHE BOOL "Enable SSE3 for GCC")
     endif()
     if(${CMAKE_SYSTEM_PROCESSOR} MATCHES x86_64*)
-        set(OPENCV_USE_O3 ON CACHE BOOL "Enable -O3 for GCC")
-        set(OPENCV_USE_FAST_MATH ON CACHE BOOL "Enable -ffast-math for GCC")
-        set(OPENCV_USE_MMX ON CACHE BOOL "Enable MMX for GCC")
-        set(OPENCV_USE_SSE ON CACHE BOOL "Enable SSE for GCC")
-        set(OPENCV_USE_SSE2 ON CACHE BOOL "Enable SSE2 for GCC")
-        set(OPENCV_USE_SSE3 ON CACHE BOOL "Enable SSE3 for GCC")
+        set(USE_O3 ON CACHE BOOL "Enable -O3 for GCC")
+        set(USE_FAST_MATH ON CACHE BOOL "Enable -ffast-math for GCC")
+        set(USE_MMX ON CACHE BOOL "Enable MMX for GCC")
+        set(USE_SSE ON CACHE BOOL "Enable SSE for GCC")
+        set(USE_SSE2 ON CACHE BOOL "Enable SSE2 for GCC")
+        set(USE_SSE3 ON CACHE BOOL "Enable SSE3 for GCC")
     endif()
     if(${CMAKE_SYSTEM_PROCESSOR} MATCHES powerpc*)
-        set(OPENCV_USE_O3 ON CACHE BOOL "Enable -O3 for GCC")
-        set(OPENCV_USE_POWERPC ON CACHE BOOL "Enable PowerPC for GCC")
+        set(USE_O3 ON CACHE BOOL "Enable -O3 for GCC")
+        set(USE_POWERPC ON CACHE BOOL "Enable PowerPC for GCC")
     endif ()
     if(${CMAKE_SYSTEM_PROCESSOR} MATCHES i686*)
-        set(OPENCV_USE_O3 ON CACHE BOOL "Enable -O3 for GCC")
-        set(OPENCV_USE_FAST_MATH ON CACHE BOOL "Enable -ffast-math for GCC")
-        set(OPENCV_USE_MMX ON CACHE BOOL "Enable MMX for GCC")
-               set(OPENCV_USE_SSE OFF CACHE BOOL "Enable SSE for GCC")
-        set(OPENCV_USE_SSE2 OFF CACHE BOOL "Enable SSE2 for GCC")
-        set(OPENCV_USE_SSE3 OFF CACHE BOOL "Enable SSE3 for GCC")
+        set(USE_O3 ON CACHE BOOL "Enable -O3 for GCC")
+        set(USE_FAST_MATH ON CACHE BOOL "Enable -ffast-math for GCC")
+        set(USE_MMX ON CACHE BOOL "Enable MMX for GCC")
+               set(USE_SSE OFF CACHE BOOL "Enable SSE for GCC")
+        set(USE_SSE2 OFF CACHE BOOL "Enable SSE2 for GCC")
+        set(USE_SSE3 OFF CACHE BOOL "Enable SSE3 for GCC")
        # SSE/SSE2 might probably be not available for some old AMD or VIA processors
     endif ()
     if(${CMAKE_SYSTEM_PROCESSOR} MATCHES x86)
-        set(OPENCV_USE_O3 ON CACHE BOOL "Enable -O3 for GCC")
-        set(OPENCV_USE_FAST_MATH ON CACHE BOOL "Enable -ffast-math for GCC")
-        set(OPENCV_USE_MMX ON CACHE BOOL "Enable MMX for GCC")
-               set(OPENCV_USE_SSE OFF CACHE BOOL "Enable SSE for GCC")
-        set(OPENCV_USE_SSE2 OFF CACHE BOOL "Enable SSE2 for GCC")
-        set(OPENCV_USE_SSE3 OFF CACHE BOOL "Enable SSE3 for GCC")
+        set(USE_O3 ON CACHE BOOL "Enable -O3 for GCC")
+        set(USE_FAST_MATH ON CACHE BOOL "Enable -ffast-math for GCC")
+        set(USE_MMX ON CACHE BOOL "Enable MMX for GCC")
+               set(USE_SSE OFF CACHE BOOL "Enable SSE for GCC")
+        set(USE_SSE2 OFF CACHE BOOL "Enable SSE2 for GCC")
+        set(USE_SSE3 OFF CACHE BOOL "Enable SSE3 for GCC")
        # SSE/SSE2 might probably be not available for some old AMD or VIA processors
     endif ()
 endif()
 
+# allow fine grained control over which libraries not to link, even if
+# they are available on the system
+# ====================================================================
+if(UNIX)
+    set(WITH_PNG ON CACHE BOOL "Include PNG support")
+    set(WITH_JPEG ON CACHE BOOL "Include JPEG support")
+    set(WITH_JASPER ON CACHE BOOL "Include JPEG2K support")
+    set(WITH_TIFF ON CACHE BOOL "Include TIFF support")
+    set(WITH_FFMPEG ON CACHE BOOL "Include FFMPEG support")
+    set(WITH_UNICAP ON CACHE BOOL "Include Unicap support")
+    set(WITH_GTK ON CACHE BOOL "Include GTK support")
+    set(WITH_GSTREAMER ON CACHE BOOL "Include Gstreamer support")
+    set(WITH_1394 ON CACHE BOOL "Include IEEE1394 support")
+    set(WITH_V4L ON CACHE BOOL "Include Video 4 Linux support")
+    set(WITH_XINE ON CACHE BOOL "Include Xine support")
+endif()
+
 # ===================================================
 # Macros that checks if module have been installed.
 # After it adds module to build and define
@@ -257,29 +274,51 @@ endmacro()
 
 if(UNIX)
     if(NOT APPLE)
+      if(WITH_GTK)
         CHECK_MODULE(gtk+-2.0 HAVE_GTK)
         CHECK_MODULE(gthread-2.0 HAVE_GTHREAD)
+      else()
+        set(HAVE_GTK FALSE)
+        set(HAVE_GTHREAD FALSE)
+      endif()
+      if(WITH_GSTREAMER)
         CHECK_MODULE(gstreamer-base-0.10 HAVE_GSTREAMER)
+      else()
+        set(HAVE_GSTREAMER FALSE)
+      endif()
     endif()
 
-    CHECK_MODULE(libunicap HAVE_UNICAP_)
-    CHECK_MODULE(libucil HAVE_UNICAP_UCIL)
-    if(HAVE_UNICAP_ AND HAVE_UNICAP_UCIL)
+    if(WITH_UNICAP)
+      CHECK_MODULE(libunicap HAVE_UNICAP_)
+      CHECK_MODULE(libucil HAVE_UNICAP_UCIL)
+      if(HAVE_UNICAP_ AND HAVE_UNICAP_UCIL)
         set(HAVE_UNICAP 1)
+      endif()
+    else()
+      set(HAVE_UNICAP FALSE)
     endif()
 
-    CHECK_MODULE(libavcodec HAVE_FFMPEG_CODEC)
-    CHECK_MODULE(libavformat HAVE_FFMPEG_FORMAT)
-    CHECK_MODULE(libavutil HAVE_FFMPEG_UTIL)
-    CHECK_MODULE(libswscale HAVE_FFMPEG_SWSCALE)
-    CHECK_INCLUDE_FILE(libavformat/avformat.h HAVE_GENTOO_FFMPEG)
-    if(HAVE_FFMPEG_CODEC AND HAVE_FFMPEG_FORMAT AND HAVE_FFMPEG_UTIL)
+    if(WITH_FFMPEG)
+      CHECK_MODULE(libavcodec HAVE_FFMPEG_CODEC)
+      CHECK_MODULE(libavformat HAVE_FFMPEG_FORMAT)
+      CHECK_MODULE(libavutil HAVE_FFMPEG_UTIL)
+      CHECK_MODULE(libswscale HAVE_FFMPEG_SWSCALE)
+      CHECK_INCLUDE_FILE(libavformat/avformat.h HAVE_GENTOO_FFMPEG)
+      if(HAVE_FFMPEG_CODEC AND HAVE_FFMPEG_FORMAT AND HAVE_FFMPEG_UTIL)
         set(HAVE_FFMPEG 1)
+      endif()
+    else()
+      set(HAVE_FFMPEG FALSE)
     endif()
 
-    CHECK_MODULE(libdc1394-2 HAVE_DC1394_2)
-    if(NOT HAVE_DC1394_2)
+    if(WITH_1394)
+      CHECK_MODULE(libdc1394-2 HAVE_DC1394_2)
+      if(NOT HAVE_DC1394_2)
         CHECK_MODULE(libdc1394 HAVE_DC1394)
+      endif()
+    else()
+      set(HAVE_DC1394_2 FALSE)
+      set(HAVE_DC1394 FALSE)
     endif()
 
     if(NOT APPLE)
@@ -288,22 +327,48 @@ if(UNIX)
         CHECK_INCLUDE_FILE(unistd.h HAVE_UNISTD_H)
         CHECK_INCLUDE_FILE(pthread.h HAVE_LIBPTHREAD)
 
+        if(WITH_XINE)
         CHECK_MODULE(libxine HAVE_XINE)
-               CHECK_MODULE(libv4l1 HAVE_LIBV4L)
-        CHECK_INCLUDE_FILE(linux/videodev.h HAVE_CAMV4L)
-        CHECK_INCLUDE_FILE(linux/videodev2.h HAVE_CAMV4L2)
-
-               if(NOT OPENCV_BUILD_3RDPARTY_LIBS)
-                       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()
-                       include(FindJPEG)
-                       include(FindTIFF)
-                       include(FindJasper)
-               endif()
+        else()
+          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)
+        else()
+          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()
+        
         set(OPENCV_LINKER_LIBS dl m pthread rt)
     else()
         add_definitions(-DHAVE_ALLOCA -DHAVE_ALLOCA_H -DHAVE_LIBPTHREAD -DHAVE_UNISTD_H)
@@ -432,7 +497,7 @@ if(MSVC)
         set(CMAKE_MODULE_LINKER_FLAGS_RELEASE "${CMAKE_MODULE_LINKER_FLAGS_RELEASE} /LTCG")
     endif()
 
-    if(OPENCV_ENABLE_OPENMP)
+    if(ENABLE_OPENMP)
         set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} /openmp")
     endif()
 
@@ -465,39 +530,39 @@ if(CMAKE_COMPILER_IS_GNUCXX)
     endif()
 
     # Other optimizations
-    if(OPENCV_USE_OMIT_FRAME_POINTER)
+    if(USE_OMIT_FRAME_POINTER)
        set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -fomit-frame-pointer")
     endif()
-    if(OPENCV_USE_O2)
+    if(USE_O2)
        set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -O2")
     endif()
-    if(OPENCV_USE_O3)
+    if(USE_O3)
        set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -O3")
     endif()
-    if(OPENCV_USE_FAST_MATH)
+    if(USE_FAST_MATH)
        set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -ffast-math")
     endif()
-    if(OPENCV_USE_POWERPC)
+    if(USE_POWERPC)
        set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -mcpu=G3 -mtune=G5")
     endif()
-    if(OPENCV_USE_MMX)
+    if(USE_MMX)
        set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -mmmx")
     endif()
     # SSE should be disabled under MingW because it generates compiler errors
-    if(OPENCV_USE_SSE)
+    if(USE_SSE)
        set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -msse")
     endif()
     # SSE2 should be disabled under MingW because it generates compiler errors
-    if(OPENCV_USE_SSE2)
+    if(USE_SSE2)
        set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -msse2")
     endif()
     # SSE3 should be disabled under MingW because it generates compiler errors
-    if(OPENCV_USE_SSE3 AND NOT MINGW)
+    if(USE_SSE3 AND NOT MINGW)
        set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -msse3")
     endif()
 
     # Profiling?
-    if(OPENCV_ENABLE_PROFILING)
+    if(ENABLE_PROFILING)
         set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -pg -g")
     else()
         # Remove unreferenced functions: function level linking
@@ -507,7 +572,7 @@ if(CMAKE_COMPILER_IS_GNUCXX)
     endif()
 
     # Parallel mode
-    if(OPENCV_ENABLE_OPENMP)
+    if(ENABLE_OPENMP)
         set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -D_GLIBCXX_PARALLEL -fopenmp")
     endif()