OpenCVConfig.cmake.in 6.76 KB
Newer Older
1 2 3 4 5
# ===================================================================================
#  The OpenCV CMake configuration file
#
#             ** File generated automatically, do not modify **
#
6
#  Usage from an external project:
7 8 9
#    In your CMakeLists.txt, add these lines:
#
#    FIND_PACKAGE(OpenCV REQUIRED )
10
#    TARGET_LINK_LIBRARIES(MY_TARGET_NAME ${OpenCV_LIBS})
11 12
#
#    This file will define the following variables:
13 14 15 16 17 18 19 20 21
#      - OpenCV_LIBS                 : The list of libraries to links against.
#      - OpenCV_LIB_DIR              : The directory where lib files are. Calling LINK_DIRECTORIES
#                                      with this path is NOT needed.
#      - OpenCV_INCLUDE_DIRS         : The OpenCV include directories.
#      - OpenCV_COMPUTE_CAPABILITIES : The version of compute capability
#      - OpenCV_VERSION              : The version of this OpenCV build. Example: "1.2.0"
#      - OpenCV_VERSION_MAJOR        : Major version part of OpenCV_VERSION. Example: "1"
#      - OpenCV_VERSION_MINOR        : Minor version part of OpenCV_VERSION. Example: "2"
#      - OpenCV_VERSION_PATCH        : Patch version part of OpenCV_VERSION. Example: "0"
22
#
23
# =================================================================================================
24

25 26 27 28 29
# ======================================================
# Version Compute Capability from which library OpenCV
# has been compiled is remembered
# ======================================================
SET(OpenCV_COMPUTE_CAPABILITIES @OpenCV_CUDA_CC@)
30 31 32 33 34 35 36 37

# Extract the directory where *this* file has been installed (determined at cmake run-time)
#  This variable may or may not be used below, depending on the parsing of OpenCVConfig.cmake
get_filename_component(THIS_OPENCV_CONFIG_PATH "${CMAKE_CURRENT_LIST_FILE}" PATH)

# ======================================================
# Include directories to add to the user project:
# ======================================================
38

39 40 41
# Provide the include directories to the caller
SET(OpenCV_INCLUDE_DIRS @CMAKE_INCLUDE_DIRS_CONFIGCMAKE@)

42 43
INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS})

44 45 46
# ======================================================
# Link directories to add to the user project:
# ======================================================
47

48
# Provide the libs directory anyway, it may be needed in some cases.
49 50 51
SET(OpenCV_LIB_DIR @CMAKE_LIB_DIRS_CONFIGCMAKE@)

LINK_DIRECTORIES(${OpenCV_LIB_DIR})
52 53 54

# ====================================================================
# Link libraries: e.g.   opencv_core220.so, opencv_imgproc220d.lib, etc...
55
# ====================================================================
56
if(NOT ANDROID)
57 58 59
    set(OPENCV_LIB_COMPONENTS opencv_core opencv_imgproc opencv_features2d opencv_gpu opencv_calib3d opencv_objdetect opencv_video opencv_highgui opencv_ml opencv_legacy opencv_contrib opencv_flann)
else()
    #libraries order is very important because linker from Android NDK is one-pass linker
60
    set(OPENCV_LIB_COMPONENTS opencv_contrib opencv_calib3d opencv_objdetect opencv_features2d opencv_imgproc opencv_video  opencv_highgui opencv_ml opencv_legacy  opencv_flann opencv_core )
61 62 63
    IF (NOT @BUILD_SHARED_LIBS@)
        set(OPENCV_LIB_COMPONENTS opencv_androidcamera ${OPENCV_LIB_COMPONENTS})
    ENDIF()
64
endif()
65

66 67
SET(OpenCV_LIBS "")
foreach(__CVLIB ${OPENCV_LIB_COMPONENTS})
68 69 70 71 72 73 74 75
    # CMake>=2.6 supports the notation "debug XXd optimized XX"
    if (CMAKE_MAJOR_VERSION GREATER 2  OR  CMAKE_MINOR_VERSION GREATER 4)
        # Modern CMake:
        SET(OpenCV_LIBS ${OpenCV_LIBS} debug ${__CVLIB}@OPENCV_DLLVERSION@@OPENCV_DEBUG_POSTFIX@ optimized ${__CVLIB}@OPENCV_DLLVERSION@)
    else(CMAKE_MAJOR_VERSION GREATER 2  OR  CMAKE_MINOR_VERSION GREATER 4)
        # Old CMake:
        SET(OpenCV_LIBS ${OpenCV_LIBS} ${__CVLIB}@OPENCV_DLLVERSION@)
    endif(CMAKE_MAJOR_VERSION GREATER 2  OR  CMAKE_MINOR_VERSION GREATER 4)
76 77
endforeach(__CVLIB)

78 79 80 81
# ==============================================================
#  Extra include directories, needed by OpenCV 2 new structure
# ==============================================================
if(NOT @CMAKE_BASE_INCLUDE_DIRS_CONFIGCMAKE@ STREQUAL  "")
82 83 84 85 86 87
    SET(BASEDIR @CMAKE_BASE_INCLUDE_DIRS_CONFIGCMAKE@)
    foreach(__CVLIB ${OPENCV_LIB_COMPONENTS})
        # We only need the "core",... part here: "opencv_core" -> "core"
        STRING(REGEX REPLACE "opencv_(.*)" "\\1" MODNAME ${__CVLIB})
        INCLUDE_DIRECTORIES("${BASEDIR}/modules/${MODNAME}/include")
    endforeach(__CVLIB)
88 89
endif(NOT @CMAKE_BASE_INCLUDE_DIRS_CONFIGCMAKE@ STREQUAL  "")

90
# For OpenCV built as static libs, we need the user to link against
91
#  many more dependencies:
92
IF (NOT @BUILD_SHARED_LIBS@)
93
    # Under static libs, the user of OpenCV needs access to the 3rdparty libs as well:
94
    if(WIN32 AND NOT ANDROID)
95
        LINK_DIRECTORIES(@CMAKE_BASE_INCLUDE_DIRS_CONFIGCMAKE@/3rdparty/lib)
96
    else()
97
        LINK_DIRECTORIES("${THIS_OPENCV_CONFIG_PATH}/3rdparty/lib")
98 99
    endif()    

100
    set(OpenCV_LIBS @OPENCV_LINKER_LIBS@ @IPP_LIBS@ @HIGHGUI_LIBRARIES@ ${OpenCV_LIBS})
101

102
    set(OPENCV_EXTRA_COMPONENTS @JPEG_LIBRARIES@ @PNG_LIBRARIES@ @TIFF_LIBRARIES@ @JASPER_LIBRARIES@ zlib)
103 104 105

    if (CMAKE_MAJOR_VERSION GREATER 2  OR  CMAKE_MINOR_VERSION GREATER 4)
        foreach(__EXTRA_LIB ${OPENCV_EXTRA_COMPONENTS})
106
            set(OpenCV_LIBS ${OpenCV_LIBS}
107 108 109 110 111 112 113
                debug ${__EXTRA_LIB}@OPENCV_DEBUG_POSTFIX@
                optimized ${__EXTRA_LIB})
        endforeach(__EXTRA_LIB)
    else(CMAKE_MAJOR_VERSION GREATER 2  OR  CMAKE_MINOR_VERSION GREATER 4)
        set(OpenCV_LIBS ${OpenCV_LIBS} ${OPENCV_EXTRA_COMPONENTS})
    endif(CMAKE_MAJOR_VERSION GREATER 2  OR  CMAKE_MINOR_VERSION GREATER 4)

114
ENDIF(NOT @BUILD_SHARED_LIBS@)
115

116 117 118 119 120
# ======================================================
#  Android camera helper macro
# ======================================================
IF (ANDROID)
  macro( COPY_NATIVE_CAMERA_LIBS target )
121 122 123 124 125 126 127 128 129 130 131 132
    IF( ARMEABI_V7A)
      get_target_property(target_location ${target} LOCATION)
      get_filename_component(target_location "${target_location}" PATH)
      file(GLOB camera_wrappers "${OpenCV_LIB_DIR}/libnative_camera_r*.so")
      foreach(wrapper ${camera_wrappers})
          ADD_CUSTOM_COMMAND(
            TARGET ${target}
            POST_BUILD
            COMMAND ${CMAKE_COMMAND} -E copy "${wrapper}" "${target_location}"
            )
      endforeach()
    ENDIF( ARMEABI_V7A )
133 134
  endmacro()
ENDIF(ANDROID)
135 136

# ======================================================
137
#  Version variables:
138 139 140 141 142
# ======================================================
SET(OpenCV_VERSION @OPENCV_VERSION@)
SET(OpenCV_VERSION_MAJOR  @OPENCV_VERSION_MAJOR@)
SET(OpenCV_VERSION_MINOR  @OPENCV_VERSION_MINOR@)
SET(OpenCV_VERSION_PATCH  @OPENCV_VERSION_PATCH@)