# 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
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)
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)
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()
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
endif()
# Parallel mode
- if(OPENCV_ENABLE_OPENMP)
+ if(ENABLE_OPENMP)
set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -D_GLIBCXX_PARALLEL -fopenmp")
endif()