Home | History | Annotate | Download | only in templates
      1 # ===================================================================================
      2 #  The OpenCV CMake configuration file
      3 #
      4 #             ** File generated automatically, do not modify **
      5 #
      6 #  Usage from an external project:
      7 #    In your CMakeLists.txt, add these lines:
      8 #
      9 #    find_package(OpenCV REQUIRED)
     10 #    include_directories(${OpenCV_INCLUDE_DIRS})
     11 #    target_link_libraries(MY_TARGET_NAME ${OpenCV_LIBS})
     12 #
     13 #    Or you can search for specific OpenCV modules:
     14 #
     15 #    find_package(OpenCV REQUIRED core videoio)
     16 #
     17 #    If the module is found then OPENCV_<MODULE>_FOUND is set to TRUE.
     18 #
     19 #    This file will define the following variables:
     20 #      - OpenCV_LIBS                     : The list of all imported targets for OpenCV modules.
     21 #      - OpenCV_INCLUDE_DIRS             : The OpenCV include directories.
     22 #      - OpenCV_COMPUTE_CAPABILITIES     : The version of compute capability.
     23 #      - OpenCV_ANDROID_NATIVE_API_LEVEL : Minimum required level of Android API.
     24 #      - OpenCV_VERSION                  : The version of this OpenCV build: "@OPENCV_VERSION_PLAIN@"
     25 #      - OpenCV_VERSION_MAJOR            : Major version part of OpenCV_VERSION: "@OPENCV_VERSION_MAJOR@"
     26 #      - OpenCV_VERSION_MINOR            : Minor version part of OpenCV_VERSION: "@OPENCV_VERSION_MINOR@"
     27 #      - OpenCV_VERSION_PATCH            : Patch version part of OpenCV_VERSION: "@OPENCV_VERSION_PATCH@"
     28 #      - OpenCV_VERSION_STATUS           : Development status of this build: "@OPENCV_VERSION_STATUS@"
     29 #
     30 #    Advanced variables:
     31 #      - OpenCV_SHARED                   : Use OpenCV as shared library
     32 #      - OpenCV_CONFIG_PATH              : Path to this OpenCVConfig.cmake
     33 #      - OpenCV_INSTALL_PATH             : OpenCV location (not set on Windows)
     34 #      - OpenCV_LIB_COMPONENTS           : Present OpenCV modules list
     35 #      - OpenCV_USE_MANGLED_PATHS        : Mangled OpenCV path flag
     36 #      - OpenCV_MODULES_SUFFIX           : The suffix for OpenCVModules-XXX.cmake file
     37 #
     38 #    Deprecated variables:
     39 #      - OpenCV_VERSION_TWEAK            : Always "0"
     40 #
     41 # ===================================================================================
     42 
     43 # Search packages for host system instead of packages for target system.
     44 # in case of cross compilation thess macro should be defined by toolchain file
     45 
     46 if(NOT COMMAND find_host_package)
     47     macro(find_host_package)
     48         find_package(${ARGN})
     49     endmacro()
     50 endif()
     51 
     52 if(NOT COMMAND find_host_program)
     53     macro(find_host_program)
     54         find_program(${ARGN})
     55     endmacro()
     56 endif()
     57 
     58 if(NOT DEFINED OpenCV_MODULES_SUFFIX)
     59   if(ANDROID)
     60     string(REPLACE - _ OpenCV_MODULES_SUFFIX "_${ANDROID_NDK_ABI_NAME}")
     61   else()
     62     set(OpenCV_MODULES_SUFFIX "")
     63   endif()
     64 endif()
     65 
     66 if("@USE_IPPICV@" STREQUAL "TRUE") # value is defined by package builder (use STREQUAL to comply new CMake policy CMP0012)
     67   if(NOT TARGET ippicv)
     68     if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/@INSTALL_PATH_RELATIVE_IPPICV@")
     69       add_library(ippicv STATIC IMPORTED)
     70       set_target_properties(ippicv PROPERTIES
     71         IMPORTED_LINK_INTERFACE_LIBRARIES ""
     72         IMPORTED_LOCATION "${CMAKE_CURRENT_LIST_DIR}/@INSTALL_PATH_RELATIVE_IPPICV@"
     73       )
     74     endif()
     75   endif()
     76 endif()
     77 
     78 if(NOT TARGET opencv_core)
     79   # Extract directory name from full path of the file currently being processed.
     80   # Note that CMake 2.8.3 introduced CMAKE_CURRENT_LIST_DIR. We reimplement it
     81   # for older versions of CMake to support these as well.
     82   if(CMAKE_VERSION VERSION_LESS "2.8.3")
     83     get_filename_component(CMAKE_CURRENT_LIST_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
     84   endif()
     85 
     86   include(${CMAKE_CURRENT_LIST_DIR}/OpenCVModules${OpenCV_MODULES_SUFFIX}.cmake)
     87 endif()
     88 
     89 # TODO All things below should be reviewed. What is about of moving this code into related modules (special vars/hooks/files)
     90 
     91 # Version Compute Capability from which OpenCV has been compiled is remembered
     92 set(OpenCV_COMPUTE_CAPABILITIES @OpenCV_CUDA_CC_CONFIGCMAKE@)
     93 
     94 set(OpenCV_CUDA_VERSION @OpenCV_CUDA_VERSION@)
     95 set(OpenCV_USE_CUBLAS   @HAVE_CUBLAS@)
     96 set(OpenCV_USE_CUFFT    @HAVE_CUFFT@)
     97 set(OpenCV_USE_NVCUVID  @HAVE_NVCUVID@)
     98 
     99 # Android API level from which OpenCV has been compiled is remembered
    100 if(ANDROID)
    101   set(OpenCV_ANDROID_NATIVE_API_LEVEL @OpenCV_ANDROID_NATIVE_API_LEVEL_CONFIGCMAKE@)
    102 else()
    103   set(OpenCV_ANDROID_NATIVE_API_LEVEL 0)
    104 endif()
    105 
    106 # Some additional settings are required if OpenCV is built as static libs
    107 set(OpenCV_SHARED @BUILD_SHARED_LIBS@)
    108 
    109 # Enables mangled install paths, that help with side by side installs
    110 set(OpenCV_USE_MANGLED_PATHS @OpenCV_USE_MANGLED_PATHS_CONFIGCMAKE@)
    111 
    112 # Extract the directory where *this* file has been installed (determined at cmake run-time)
    113 get_filename_component(OpenCV_CONFIG_PATH "${CMAKE_CURRENT_LIST_FILE}" PATH CACHE)
    114 
    115 if(NOT WIN32 OR ANDROID)
    116   if(ANDROID)
    117     set(OpenCV_INSTALL_PATH "${OpenCV_CONFIG_PATH}/../../..")
    118   else()
    119     set(OpenCV_INSTALL_PATH "${OpenCV_CONFIG_PATH}/../..")
    120   endif()
    121   # Get the absolute path with no ../.. relative marks, to eliminate implicit linker warnings
    122   if(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} VERSION_LESS 2.8)
    123     get_filename_component(OpenCV_INSTALL_PATH "${OpenCV_INSTALL_PATH}" ABSOLUTE)
    124   else()
    125     get_filename_component(OpenCV_INSTALL_PATH "${OpenCV_INSTALL_PATH}" REALPATH)
    126   endif()
    127 endif()
    128 
    129 # ======================================================
    130 # Include directories to add to the user project:
    131 # ======================================================
    132 
    133 # Provide the include directories to the caller
    134 set(OpenCV_INCLUDE_DIRS @OpenCV_INCLUDE_DIRS_CONFIGCMAKE@)
    135 
    136 # ======================================================
    137 # Link directories to add to the user project:
    138 # ======================================================
    139 
    140 # Provide the libs directories to the caller
    141 set(OpenCV_LIB_DIR_OPT @OpenCV_LIB_DIRS_CONFIGCMAKE@ CACHE PATH "Path where release OpenCV libraries are located")
    142 set(OpenCV_LIB_DIR_DBG @OpenCV_LIB_DIRS_CONFIGCMAKE@ CACHE PATH "Path where debug OpenCV libraries are located")
    143 set(OpenCV_3RDPARTY_LIB_DIR_OPT @OpenCV_3RDPARTY_LIB_DIRS_CONFIGCMAKE@ CACHE PATH "Path where release 3rdparty OpenCV dependencies are located")
    144 set(OpenCV_3RDPARTY_LIB_DIR_DBG @OpenCV_3RDPARTY_LIB_DIRS_CONFIGCMAKE@ CACHE PATH "Path where debug 3rdparty OpenCV dependencies are located")
    145 mark_as_advanced(FORCE OpenCV_LIB_DIR_OPT OpenCV_LIB_DIR_DBG OpenCV_3RDPARTY_LIB_DIR_OPT OpenCV_3RDPARTY_LIB_DIR_DBG OpenCV_CONFIG_PATH)
    146 
    147 # ======================================================
    148 #  Version variables:
    149 # ======================================================
    150 SET(OpenCV_VERSION @OPENCV_VERSION_PLAIN@)
    151 SET(OpenCV_VERSION_MAJOR  @OPENCV_VERSION_MAJOR@)
    152 SET(OpenCV_VERSION_MINOR  @OPENCV_VERSION_MINOR@)
    153 SET(OpenCV_VERSION_PATCH  @OPENCV_VERSION_PATCH@)
    154 SET(OpenCV_VERSION_TWEAK  0)
    155 SET(OpenCV_VERSION_STATUS "@OPENCV_VERSION_STATUS@")
    156 
    157 # ====================================================================
    158 # Link libraries: e.g. opencv_core;opencv_imgproc; etc...
    159 # ====================================================================
    160 
    161 SET(OpenCV_LIB_COMPONENTS @OPENCV_MODULES_CONFIGCMAKE@)
    162 SET(OpenCV_WORLD_COMPONENTS @OPENCV_WORLD_MODULES@)
    163 
    164 # ==============================================================
    165 #  Extra include directories, needed by OpenCV 2 new structure
    166 # ==============================================================
    167 SET(OpenCV2_INCLUDE_DIRS @OpenCV2_INCLUDE_DIRS_CONFIGCMAKE@)
    168 if(OpenCV2_INCLUDE_DIRS)
    169   list(APPEND OpenCV_INCLUDE_DIRS ${OpenCV2_INCLUDE_DIRS})
    170 
    171   set(OpenCV_ADD_DEBUG_RELEASE @OpenCV_ADD_DEBUG_RELEASE_CONFIGCMAKE@)
    172   if(OpenCV_ADD_DEBUG_RELEASE)
    173     set(OpenCV_LIB_DIR_OPT "${OpenCV_LIB_DIR_OPT}/Release")
    174     set(OpenCV_LIB_DIR_DBG "${OpenCV_LIB_DIR_DBG}/Debug")
    175     set(OpenCV_3RDPARTY_LIB_DIR_OPT "${OpenCV_3RDPARTY_LIB_DIR_OPT}/Release")
    176     set(OpenCV_3RDPARTY_LIB_DIR_DBG "${OpenCV_3RDPARTY_LIB_DIR_DBG}/Debug")
    177   endif()
    178 endif()
    179 
    180 # ==============================================================
    181 #  Check OpenCV availability
    182 # ==============================================================
    183 if(ANDROID AND OpenCV_ANDROID_NATIVE_API_LEVEL GREATER ANDROID_NATIVE_API_LEVEL)
    184   message(FATAL_ERROR "Minimum required by OpenCV API level is android-${OpenCV_ANDROID_NATIVE_API_LEVEL}")
    185   #always FATAL_ERROR because we can't say to the caller that OpenCV is not found
    186   #http://www.mail-archive.com/cmake@cmake.org/msg37831.html
    187   if(OpenCV_FIND_REQUIRED)
    188     message(FATAL_ERROR "Minimum required by OpenCV API level is android-${OpenCV_ANDROID_NATIVE_API_LEVEL}")
    189   elseif(NOT OpenCV_FIND_QUIETLY)
    190     message(WARNING "Minimum required by OpenCV API level is android-${OpenCV_ANDROID_NATIVE_API_LEVEL}")
    191   endif()
    192   set(OpenCV_FOUND "OpenCV_FOUND-NOTFOUND")
    193   return()#Android toolchain requires CMake > 2.6
    194 endif()
    195 
    196 # ==============================================================
    197 #  Form list of modules (components) to find
    198 # ==============================================================
    199 if(NOT OpenCV_FIND_COMPONENTS)
    200   set(OpenCV_FIND_COMPONENTS ${OpenCV_LIB_COMPONENTS})
    201   list(REMOVE_ITEM OpenCV_FIND_COMPONENTS opencv_java)
    202   if(GTest_FOUND OR GTEST_FOUND)
    203     list(REMOVE_ITEM OpenCV_FIND_COMPONENTS opencv_ts)
    204   endif()
    205 endif()
    206 
    207 # expand short module names and see if requested components exist
    208 set(OpenCV_FIND_COMPONENTS_ "")
    209 foreach(__cvcomponent ${OpenCV_FIND_COMPONENTS})
    210   if(NOT __cvcomponent MATCHES "^opencv_")
    211     set(__cvcomponent opencv_${__cvcomponent})
    212   endif()
    213   list(FIND OpenCV_LIB_COMPONENTS ${__cvcomponent} __cvcomponentIdx)
    214   if(__cvcomponentIdx LESS 0)
    215     #requested component is not found...
    216     if(OpenCV_FIND_REQUIRED)
    217       message(FATAL_ERROR "${__cvcomponent} is required but was not found")
    218     elseif(NOT OpenCV_FIND_QUIETLY)
    219       message(WARNING "${__cvcomponent} is required but was not found")
    220     endif()
    221     #indicate that module is NOT found
    222     string(TOUPPER "${__cvcomponent}" __cvcomponentUP)
    223     set(${__cvcomponentUP}_FOUND "${__cvcomponentUP}_FOUND-NOTFOUND")
    224   else()
    225     list(APPEND OpenCV_FIND_COMPONENTS_ ${__cvcomponent})
    226     # Not using list(APPEND) here, because OpenCV_LIBS may not exist yet.
    227     # Also not clearing OpenCV_LIBS anywhere, so that multiple calls
    228     # to find_package(OpenCV) with different component lists add up.
    229     set(OpenCV_LIBS ${OpenCV_LIBS} "${__cvcomponent}")
    230     #indicate that module is found
    231     string(TOUPPER "${__cvcomponent}" __cvcomponentUP)
    232     set(${__cvcomponentUP}_FOUND 1)
    233   endif()
    234   if(OpenCV_SHARED AND ";${OpenCV_WORLD_COMPONENTS};" MATCHES ";${__cvcomponent};" AND NOT TARGET ${__cvcomponent})
    235     get_target_property(__implib_dbg opencv_world IMPORTED_IMPLIB_DEBUG)
    236     get_target_property(__implib_release opencv_world  IMPORTED_IMPLIB_RELEASE)
    237     get_target_property(__location_dbg opencv_world IMPORTED_LOCATION_DEBUG)
    238     get_target_property(__location_release opencv_world  IMPORTED_LOCATION_RELEASE)
    239     add_library(${__cvcomponent} SHARED IMPORTED)
    240     if(__location_dbg)
    241       set_property(TARGET ${__cvcomponent} APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
    242       set_target_properties(${__cvcomponent} PROPERTIES
    243         IMPORTED_IMPLIB_DEBUG "${__implib_dbg}"
    244         IMPORTED_LINK_INTERFACE_LIBRARIES_DEBUG ""
    245         IMPORTED_LOCATION_DEBUG "${__location_dbg}"
    246       )
    247     endif()
    248     if(__location_release)
    249       set_property(TARGET ${__cvcomponent} APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
    250       set_target_properties(${__cvcomponent} PROPERTIES
    251         IMPORTED_IMPLIB_RELEASE "${__implib_release}"
    252         IMPORTED_LINK_INTERFACE_LIBRARIES_RELEASE ""
    253         IMPORTED_LOCATION_RELEASE "${__location_release}"
    254       )
    255     endif()
    256   endif()
    257 endforeach()
    258 set(OpenCV_FIND_COMPONENTS ${OpenCV_FIND_COMPONENTS_})
    259 
    260 # ==============================================================
    261 #  Resolve dependencies
    262 # ==============================================================
    263 if(OpenCV_USE_MANGLED_PATHS)
    264   set(OpenCV_LIB_SUFFIX ".${OpenCV_VERSION_MAJOR}.${OpenCV_VERSION_MINOR}.${OpenCV_VERSION_PATCH}")
    265 else()
    266   set(OpenCV_LIB_SUFFIX "")
    267 endif()
    268 
    269 foreach(__opttype OPT DBG)
    270   SET(OpenCV_LIBS_${__opttype} "${OpenCV_LIBS}")
    271   SET(OpenCV_EXTRA_LIBS_${__opttype} "")
    272 
    273   # CUDA
    274   if(OpenCV_CUDA_VERSION)
    275     if(NOT CUDA_FOUND)
    276       find_host_package(CUDA ${OpenCV_CUDA_VERSION} EXACT REQUIRED)
    277     else()
    278       if(NOT CUDA_VERSION_STRING VERSION_EQUAL OpenCV_CUDA_VERSION)
    279         message(FATAL_ERROR "OpenCV static library was compiled with CUDA ${OpenCV_CUDA_VERSION} support. Please, use the same version or rebuild OpenCV with CUDA ${CUDA_VERSION_STRING}")
    280       endif()
    281     endif()
    282 
    283     set(OpenCV_CUDA_LIBS_ABSPATH ${CUDA_LIBRARIES})
    284 
    285     if(${CUDA_VERSION} VERSION_LESS "5.5")
    286       list(APPEND OpenCV_CUDA_LIBS_ABSPATH ${CUDA_npp_LIBRARY})
    287     else()
    288       find_cuda_helper_libs(nppc)
    289       find_cuda_helper_libs(nppi)
    290       find_cuda_helper_libs(npps)
    291       list(APPEND OpenCV_CUDA_LIBS_ABSPATH ${CUDA_nppc_LIBRARY} ${CUDA_nppi_LIBRARY} ${CUDA_npps_LIBRARY})
    292     endif()
    293 
    294     if(OpenCV_USE_CUBLAS)
    295       list(APPEND OpenCV_CUDA_LIBS_ABSPATH ${CUDA_CUBLAS_LIBRARIES})
    296     endif()
    297 
    298     if(OpenCV_USE_CUFFT)
    299       list(APPEND OpenCV_CUDA_LIBS_ABSPATH ${CUDA_CUFFT_LIBRARIES})
    300     endif()
    301 
    302     if(OpenCV_USE_NVCUVID)
    303       list(APPEND OpenCV_CUDA_LIBS_ABSPATH ${CUDA_nvcuvid_LIBRARIES})
    304     endif()
    305 
    306     if(WIN32)
    307       list(APPEND OpenCV_CUDA_LIBS_ABSPATH ${CUDA_nvcuvenc_LIBRARIES})
    308     endif()
    309 
    310     set(OpenCV_CUDA_LIBS_RELPATH "")
    311     foreach(l ${OpenCV_CUDA_LIBS_ABSPATH})
    312       get_filename_component(_tmp ${l} PATH)
    313       if(NOT ${_tmp} MATCHES "-Wl.*")
    314           list(APPEND OpenCV_CUDA_LIBS_RELPATH ${_tmp})
    315       endif()
    316     endforeach()
    317 
    318     list(REMOVE_DUPLICATES OpenCV_CUDA_LIBS_RELPATH)
    319     link_directories(${OpenCV_CUDA_LIBS_RELPATH})
    320   endif()
    321 endforeach()
    322 
    323 # ==============================================================
    324 # Compatibility stuff
    325 # ==============================================================
    326 if(CMAKE_BUILD_TYPE MATCHES "Debug")
    327   SET(OpenCV_LIB_DIR ${OpenCV_LIB_DIR_DBG} ${OpenCV_3RDPARTY_LIB_DIR_DBG})
    328 else()
    329   SET(OpenCV_LIB_DIR ${OpenCV_LIB_DIR_OPT} ${OpenCV_3RDPARTY_LIB_DIR_OPT})
    330 endif()
    331 set(OpenCV_LIBRARIES ${OpenCV_LIBS})
    332 
    333 if(CMAKE_CROSSCOMPILING AND OpenCV_SHARED AND (CMAKE_SYSTEM_NAME MATCHES "Linux"))
    334   foreach(dir ${OpenCV_LIB_DIR})
    335     set(CMAKE_EXE_LINKER_FLAGS    "${CMAKE_EXE_LINKER_FLAGS}    -Wl,-rpath-link,${dir}")
    336     set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-rpath-link,${dir}")
    337     set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,-rpath-link,${dir}")
    338   endforeach()
    339 endif()
    340 
    341 
    342 
    343 #
    344 # Some macroses for samples
    345 #
    346 macro(ocv_check_dependencies)
    347   set(OCV_DEPENDENCIES_FOUND TRUE)
    348   foreach(d ${ARGN})
    349     if(NOT TARGET ${d})
    350       message(WARNING "OpenCV: Can't resolve dependency: ${d}")
    351       set(OCV_DEPENDENCIES_FOUND FALSE)
    352       break()
    353     endif()
    354   endforeach()
    355 endmacro()
    356 
    357 # adds include directories in such way that directories from the OpenCV source tree go first
    358 function(ocv_include_directories)
    359   set(__add_before "")
    360   file(TO_CMAKE_PATH "${OpenCV_DIR}" __baseDir)
    361   foreach(dir ${ARGN})
    362     get_filename_component(__abs_dir "${dir}" ABSOLUTE)
    363     if("${__abs_dir}" MATCHES "^${__baseDir}")
    364       list(APPEND __add_before "${dir}")
    365     else()
    366       include_directories(AFTER SYSTEM "${dir}")
    367     endif()
    368   endforeach()
    369   include_directories(BEFORE ${__add_before})
    370 endfunction()
    371 
    372 macro(ocv_include_modules)
    373   include_directories(BEFORE "${OpenCV_INCLUDE_DIRS}")
    374 endmacro()
    375 
    376 macro(ocv_include_modules_recurse)
    377   include_directories(BEFORE "${OpenCV_INCLUDE_DIRS}")
    378 endmacro()
    379 
    380 macro(ocv_target_link_libraries)
    381   target_link_libraries(${ARGN})
    382 endmacro()
    383 
    384 # remove all matching elements from the list
    385 macro(ocv_list_filterout lst regex)
    386   foreach(item ${${lst}})
    387     if(item MATCHES "${regex}")
    388       list(REMOVE_ITEM ${lst} "${item}")
    389     endif()
    390   endforeach()
    391 endmacro()
    392