X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=CMakeLists.txt;h=1ab31582f29dbb61d5af0d1128ec4bfb24f802b8;hb=refs%2Fheads%2Faccepted%2Ftizen_5.5_unified_wearable_hotfix;hp=66f03de886e24df3a2a4713d47fbc148862d7962;hpb=ecbd5b057498dd963d16c64b6ae99cd9ea9e709a;p=platform%2Fupstream%2Fopencv.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 66f03de..1ab3158 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -34,7 +34,7 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ${ENABLE_PIC}) # Following block can break build in case of cross-compilng # but CMAKE_CROSSCOMPILING variable will be set only on project(OpenCV) command -# so we will try to detect cross-compiling by presense of CMAKE_TOOLCHAIN_FILE +# so we will try to detect cross-compiling by the presence of CMAKE_TOOLCHAIN_FILE if(NOT DEFINED CMAKE_INSTALL_PREFIX) if(NOT CMAKE_TOOLCHAIN_FILE) # it _must_ go before project(OpenCV) in order to work @@ -105,6 +105,16 @@ if(POLICY CMP0067) endif() include(cmake/OpenCVUtils.cmake) +ocv_cmake_reset_hooks() +ocv_check_environment_variables(OPENCV_CMAKE_HOOKS_DIR) +if(DEFINED OPENCV_CMAKE_HOOKS_DIR) + foreach(__dir ${OPENCV_CMAKE_HOOKS_DIR}) + get_filename_component(__dir "${__dir}" ABSOLUTE) + ocv_cmake_hook_register_dir(${__dir}) + endforeach() +endif() + +ocv_cmake_hook(CMAKE_INIT) # must go before the project command ocv_update(CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING "Configs" FORCE) @@ -141,6 +151,7 @@ endif() # ---------------------------------------------------------------------------- OCV_OPTION(ENABLE_CXX11 "Enable C++11 compilation mode" "${OPENCV_CXX11}") include(cmake/OpenCVDetectCXXCompiler.cmake) +ocv_cmake_hook(POST_DETECT_COMPILER) # Add these standard paths to the search paths for FIND_LIBRARY # to find libraries from these locations first @@ -197,6 +208,7 @@ OCV_OPTION(BUILD_JASPER "Build libjasper from source" WIN32 O OCV_OPTION(BUILD_JPEG "Build libjpeg from source" WIN32 OR ANDROID OR APPLE) OCV_OPTION(BUILD_PNG "Build libpng from source" WIN32 OR ANDROID OR APPLE) OCV_OPTION(BUILD_OPENEXR "Build openexr from source" (WIN32 OR ANDROID OR APPLE) AND NOT WINRT) +OCV_OPTION(BUILD_WEBP "Build WebP from source" (WIN32 OR ANDROID OR APPLE) AND NOT WINRT) OCV_OPTION(BUILD_TBB "Download and build TBB from source" ANDROID ) OCV_OPTION(BUILD_IPP_IW "Build IPP IW from source" NOT MINGW IF (X86_64 OR X86) AND NOT WINRT ) OCV_OPTION(BUILD_ITT "Build Intel ITT from source" NOT MINGW IF (X86_64 OR X86) AND NOT WINRT AND NOT APPLE_FRAMEWORK ) @@ -222,6 +234,7 @@ OCV_OPTION(WITH_GTK "Include GTK support" ON OCV_OPTION(WITH_GTK_2_X "Use GTK version 2" OFF IF (UNIX AND NOT APPLE AND NOT ANDROID) ) OCV_OPTION(WITH_IPP "Include Intel IPP support" (NOT MINGW AND NOT CV_DISABLE_OPTIMIZATION) IF (X86_64 OR X86) AND NOT WINRT AND NOT IOS ) OCV_OPTION(WITH_HALIDE "Include Halide support" OFF) +OCV_OPTION(WITH_INF_ENGINE "Include Intel Inference Engine support" OFF) OCV_OPTION(WITH_JASPER "Include JPEG2K support" ON IF (NOT IOS) ) OCV_OPTION(WITH_JPEG "Include JPEG support" ON) OCV_OPTION(WITH_WEBP "Include WebP support" ON IF (NOT WINRT) ) @@ -278,7 +291,7 @@ OCV_OPTION(BUILD_EXAMPLES "Build all examples" OCV_OPTION(BUILD_PACKAGE "Enables 'make package_source' command" ON IF NOT WINRT) OCV_OPTION(BUILD_PERF_TESTS "Build performance tests" ON IF (NOT APPLE_FRAMEWORK) ) OCV_OPTION(BUILD_TESTS "Build accuracy & regression tests" ON IF (NOT APPLE_FRAMEWORK) ) -OCV_OPTION(BUILD_WITH_DEBUG_INFO "Include debug info into debug libs (not MSCV only)" ON ) +OCV_OPTION(BUILD_WITH_DEBUG_INFO "Include debug info into release binaries ('OFF' means default settings)" OFF ) OCV_OPTION(BUILD_WITH_STATIC_CRT "Enables use of statically linked CRT for statically linked OpenCV" ON IF MSVC ) OCV_OPTION(BUILD_WITH_DYNAMIC_IPP "Enables dynamic linking of IPP (only for standalone IPP)" OFF ) OCV_OPTION(BUILD_FAT_JAVA_LIB "Create Java wrapper exporting all functions of OpenCV library (requires static build of OpenCV modules)" ANDROID IF NOT BUILD_SHARED_LIBS) @@ -334,6 +347,7 @@ endif() # ---------------------------------------------------------------------------- include(cmake/OpenCVVersion.cmake) +ocv_cmake_hook(POST_OPTIONS) # ---------------------------------------------------------------------------- # Build & install layouts @@ -402,6 +416,7 @@ if(ANDROID) set(LIBRARY_OUTPUT_PATH "${OpenCV_BINARY_DIR}/lib/${ANDROID_NDK_ABI_NAME}") ocv_update(3P_LIBRARY_OUTPUT_PATH "${OpenCV_BINARY_DIR}/3rdparty/lib/${ANDROID_NDK_ABI_NAME}") ocv_update(OPENCV_LIB_INSTALL_PATH sdk/native/libs/${ANDROID_NDK_ABI_NAME}) + ocv_update(OPENCV_LIB_ARCHIVE_INSTALL_PATH sdk/native/staticlibs/${ANDROID_NDK_ABI_NAME}) ocv_update(OPENCV_3P_LIB_INSTALL_PATH sdk/native/3rdparty/libs/${ANDROID_NDK_ABI_NAME}) ocv_update(OPENCV_CONFIG_INSTALL_PATH sdk/native/jni) ocv_update(OPENCV_INCLUDE_INSTALL_PATH sdk/native/jni/include) @@ -418,7 +433,7 @@ else() ocv_update(OPENCV_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}lib${LIB_SUFFIX}") endif() ocv_update(OPENCV_3P_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}staticlib${LIB_SUFFIX}") - ocv_update(OPENCV_SAMPLES_SRC_INSTALL_PATH samples/native) + ocv_update(OPENCV_SAMPLES_SRC_INSTALL_PATH samples) ocv_update(OPENCV_JAR_INSTALL_PATH java) ocv_update(OPENCV_OTHER_INSTALL_PATH etc) ocv_update(OPENCV_CONFIG_INSTALL_PATH ".") @@ -470,6 +485,10 @@ else() endif() ocv_update(OPENCV_JNI_BIN_INSTALL_PATH "${OPENCV_JNI_INSTALL_PATH}") +if(NOT OPENCV_LIB_ARCHIVE_INSTALL_PATH) + set(OPENCV_LIB_ARCHIVE_INSTALL_PATH ${OPENCV_LIB_INSTALL_PATH}) +endif() + if(WIN32) # Postfix of DLLs: set(OPENCV_DLLVERSION "${OPENCV_VERSION_MAJOR}${OPENCV_VERSION_MINOR}${OPENCV_VERSION_PATCH}") @@ -497,7 +516,7 @@ ocv_include_directories(${OPENCV_CONFIG_FILE_INCLUDE_DIR}) # ---------------------------------------------------------------------------- # Path for additional modules # ---------------------------------------------------------------------------- -set(OPENCV_EXTRA_MODULES_PATH "" CACHE PATH "Where to look for additional OpenCV modules") +set(OPENCV_EXTRA_MODULES_PATH "" CACHE PATH "Where to look for additional OpenCV modules (can be ;-separated list of paths)") # ---------------------------------------------------------------------------- # Autodetect if we are in a GIT repository @@ -529,6 +548,8 @@ if(CMAKE_GENERATOR MATCHES "Makefiles|Ninja" AND "${CMAKE_BUILD_TYPE}" STREQUAL set(CMAKE_BUILD_TYPE Release) endif() +ocv_cmake_hook(POST_CMAKE_BUILD_OPTIONS) + # --- Python Support --- if(NOT IOS) include(cmake/OpenCVDetectPython.cmake) @@ -536,19 +557,7 @@ endif() include(cmake/OpenCVCompilerOptions.cmake) - -# ---------------------------------------------------------------------------- -# Use statically or dynamically linked CRT? -# Default: dynamic -# ---------------------------------------------------------------------------- -if(MSVC) - include(cmake/OpenCVCRTLinkage.cmake) -endif(MSVC) - -if(WIN32 AND NOT MINGW) - add_definitions(-D_VARIADIC_MAX=10) -endif(WIN32 AND NOT MINGW) - +ocv_cmake_hook(POST_COMPILER_OPTIONS) # ---------------------------------------------------------------------------- # CHECK FOR SYSTEM LIBRARIES, OPTIONS, ETC.. @@ -668,6 +677,11 @@ if(WITH_HALIDE) include(cmake/OpenCVDetectHalide.cmake) endif() +# --- Inference Engine --- +if(WITH_INF_ENGINE) + include(cmake/OpenCVDetectInferenceEngine.cmake) +endif() + # --- DirectX --- if(WITH_DIRECTX) include(cmake/OpenCVDetectDirectX.cmake) @@ -774,6 +788,7 @@ if(CV_TRACE) include(cmake/OpenCVDetectTrace.cmake) endif() +ocv_cmake_hook(POST_DETECT_DEPENDECIES) # ---------------------------------------------------------------------------- # Solution folders: @@ -793,6 +808,9 @@ include(cmake/OpenCVExtraTargets.cmake) # opencv.hpp and legacy headers add_subdirectory(include) +# Enable compiler options for OpenCV modules/apps/samples only (ignore 3rdparty) +ocv_add_modules_compiler_options() + # OpenCV modules add_subdirectory(modules) @@ -808,7 +826,7 @@ if(BUILD_opencv_apps) endif() # examples -if(BUILD_EXAMPLES OR BUILD_ANDROID_EXAMPLES OR INSTALL_PYTHON_EXAMPLES) +if(BUILD_EXAMPLES OR BUILD_ANDROID_EXAMPLES OR INSTALL_PYTHON_EXAMPLES OR INSTALL_C_EXAMPLES) add_subdirectory(samples) endif() @@ -820,6 +838,8 @@ endif() # Finalization: generate configuration-based files # ---------------------------------------------------------------------------- +ocv_cmake_hook(PRE_FINALIZE) + # Generate platform-dependent and configuration-dependent headers include(cmake/OpenCVGenHeaders.cmake) @@ -1352,6 +1372,10 @@ if(WITH_HALIDE OR HAVE_HALIDE) status(" Halide:" HAVE_HALIDE THEN "YES (${HALIDE_LIBRARIES} ${HALIDE_INCLUDE_DIRS})" ELSE NO) endif() +if(WITH_INF_ENGINE OR HAVE_INF_ENGINE) + status(" Inference Engine:" HAVE_INF_ENGINE THEN "YES (${INF_ENGINE_LIBRARIES} ${INF_ENGINE_INCLUDE_DIRS})" ELSE NO) +endif() + if(WITH_EIGEN OR HAVE_EIGEN) status(" Eigen:" HAVE_EIGEN THEN "YES (ver ${EIGEN_WORLD_VERSION}.${EIGEN_MAJOR_VERSION}.${EIGEN_MINOR_VERSION})" ELSE NO) endif() @@ -1459,6 +1483,8 @@ status("") ocv_finalize_status() +ocv_cmake_hook(POST_FINALIZE) + # ---------------------------------------------------------------------------- # CPack stuff # ----------------------------------------------------------------------------