1
# ----------------------------------------------------------------------------
2
# Detect other 3rd-party performance and math libraries
3
# ----------------------------------------------------------------------------
7
include("${OpenCV_SOURCE_DIR}/cmake/OpenCVDetectTBB.cmake")
12
include("${OpenCV_SOURCE_DIR}/cmake/OpenCVFindIPP.cmake")
14
include("${OpenCV_SOURCE_DIR}/cmake/OpenCVFindIPPIW.cmake")
16
ocv_include_directories(${IPP_IW_INCLUDES})
17
list(APPEND OPENCV_LINKER_LIBS ${IPP_IW_LIBRARIES})
19
ocv_include_directories(${IPP_INCLUDE_DIRS})
20
list(APPEND OPENCV_LINKER_LIBS ${IPP_LIBRARIES})
23
if(ANDROID AND NOT OPENCV_SKIP_ANDROID_IPP_FIX_1)
24
set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--exclude-libs,libippicv.a -Wl,--exclude-libs,libippiw.a ${CMAKE_SHARED_LINKER_FLAGS}")
25
elseif(ANDROID AND NOT OPENCV_SKIP_ANDROID_IPP_FIX_2)
26
set(CMAKE_SHARED_LINKER_FLAGS "-Wl,-Bsymbolic ${CMAKE_SHARED_LINKER_FLAGS}")
29
if(OPENCV_FORCE_IPP_EXCLUDE_LIBS
31
AND UNIX AND NOT ANDROID AND NOT APPLE
32
AND CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang|Intel"
34
AND NOT OPENCV_SKIP_IPP_EXCLUDE_LIBS
36
set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--exclude-libs,libippicv.a -Wl,--exclude-libs,libippiw.a ${CMAKE_SHARED_LINKER_FLAGS}")
43
if(ENABLE_CUDA_FIRST_CLASS_LANGUAGE)
44
include("${OpenCV_SOURCE_DIR}/cmake/OpenCVDetectCUDALanguage.cmake")
46
include("${OpenCV_SOURCE_DIR}/cmake/OpenCVDetectCUDA.cmake")
49
message(WARNING "OpenCV is not able to find/configure CUDA SDK (required by WITH_CUDA).
50
CUDA support will be disabled in OpenCV build.
51
To eliminate this warning remove WITH_CUDA=ON CMake configuration option.
57
if(WITH_EIGEN AND NOT HAVE_EIGEN)
58
if((OPENCV_FORCE_EIGEN_FIND_PACKAGE_CONFIG
59
OR NOT (CMAKE_VERSION VERSION_LESS "3.0.0") # Eigen3Targets.cmake required CMake 3.0.0+
60
) AND NOT OPENCV_SKIP_EIGEN_FIND_PACKAGE_CONFIG
62
find_package(Eigen3 CONFIG QUIET) # Ceres 2.0.0 CMake scripts doesn't work with CMake's FindEigen3.cmake module (due to missing EIGEN3_VERSION_STRING)
65
find_package(Eigen3 QUIET)
69
if(TARGET Eigen3::Eigen)
70
# Use Eigen3 imported target if possible
71
list(APPEND OPENCV_LINKER_LIBS Eigen3::Eigen)
74
if(DEFINED EIGEN3_INCLUDE_DIRS)
75
set(EIGEN_INCLUDE_PATH ${EIGEN3_INCLUDE_DIRS})
77
elseif(DEFINED EIGEN3_INCLUDE_DIR)
78
set(EIGEN_INCLUDE_PATH ${EIGEN3_INCLUDE_DIR})
83
if(DEFINED EIGEN3_WORLD_VERSION) # CMake module
84
set(EIGEN_WORLD_VERSION ${EIGEN3_WORLD_VERSION})
85
set(EIGEN_MAJOR_VERSION ${EIGEN3_MAJOR_VERSION})
86
set(EIGEN_MINOR_VERSION ${EIGEN3_MINOR_VERSION})
87
else() # Eigen config file
88
set(EIGEN_WORLD_VERSION ${EIGEN3_VERSION_MAJOR})
89
set(EIGEN_MAJOR_VERSION ${EIGEN3_VERSION_MINOR})
90
set(EIGEN_MINOR_VERSION ${EIGEN3_VERSION_PATCH})
96
if(NOT EIGEN_INCLUDE_PATH OR NOT EXISTS "${EIGEN_INCLUDE_PATH}")
98
set(__find_path_extra_options "")
99
if(NOT CMAKE_CROSSCOMPILING)
100
list(APPEND __find_paths /opt)
102
if(DEFINED ENV{EIGEN_ROOT})
103
set(__find_paths "$ENV{EIGEN_ROOT}/include")
104
list(APPEND __find_path_extra_options NO_DEFAULT_PATH)
106
set(__find_paths ENV ProgramFiles ENV ProgramW6432)
108
find_path(EIGEN_INCLUDE_PATH "Eigen/Core"
109
PATHS ${__find_paths}
110
PATH_SUFFIXES include/eigen3 include/eigen2 Eigen/include/eigen3 Eigen/include/eigen2
111
DOC "The path to Eigen3/Eigen2 headers"
112
${__find_path_extra_options}
115
if(EIGEN_INCLUDE_PATH AND EXISTS "${EIGEN_INCLUDE_PATH}")
116
ocv_parse_header("${EIGEN_INCLUDE_PATH}/Eigen/src/Core/util/Macros.h" EIGEN_VERSION_LINES EIGEN_WORLD_VERSION EIGEN_MAJOR_VERSION EIGEN_MINOR_VERSION)
122
if(EIGEN_INCLUDE_PATH AND EXISTS "${EIGEN_INCLUDE_PATH}")
123
ocv_include_directories(SYSTEM ${EIGEN_INCLUDE_PATH})
128
# Ubuntu: sudo apt-get install coinor-libclp-dev coinor-libcoinutils-dev
129
ocv_clear_vars(HAVE_CLP)
132
ocv_check_modules(CLP clp)
135
if(NOT ${CLP_INCLUDE_DIRS} STREQUAL "")
136
ocv_include_directories(${CLP_INCLUDE_DIRS})
138
list(APPEND OPENCV_LINKER_LIBS ${CLP_LIBRARIES})
143
find_path(CLP_INCLUDE_PATH "coin"
144
PATHS "/usr/local/include" "/usr/include" "/opt/include"
145
DOC "The path to Clp headers")
147
ocv_include_directories(${CLP_INCLUDE_PATH} "${CLP_INCLUDE_PATH}/coin")
148
get_filename_component(_CLP_LIBRARY_DIR "${CLP_INCLUDE_PATH}/../lib" ABSOLUTE)
149
set(CLP_LIBRARY_DIR "${_CLP_LIBRARY_DIR}" CACHE PATH "Full path of Clp library directory")
150
link_directories(${CLP_LIBRARY_DIR})
152
set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} Clp CoinUtils m)
155
set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} Clp CoinUtils)
157
set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} libClp libCoinUtils)