mirror of
https://github.com/opencv/opencv.git
synced 2026-07-31 00:03:03 +04:00
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
This commit is contained in:
@@ -31,27 +31,33 @@ macro(ocv_lapack_check)
|
||||
else()
|
||||
# adding proxy opencv_lapack.h header
|
||||
set(CBLAS_H_PROXY_PATH ${CMAKE_BINARY_DIR}/opencv_lapack.h)
|
||||
if((APPLE OR OPENCV_SKIP_LAPACK_EXTERN_C) AND NOT OPENCV_FORCE_LAPACK_EXTERN_C)
|
||||
set(_lapack_include_str_extern_C "")
|
||||
set(_lapack_include_str_extern_C_end "")
|
||||
else()
|
||||
set(_lapack_include_str_extern_C "extern \"C\" {\n")
|
||||
set(_lapack_include_str_extern_C_end "}\n")
|
||||
|
||||
set(_lapack_add_extern_c NOT (APPLE OR OPENCV_SKIP_LAPACK_EXTERN_C) OR OPENCV_FORCE_LAPACK_EXTERN_C)
|
||||
|
||||
set(_lapack_content "// This file is auto-generated\n")
|
||||
if(${_lapack_add_extern_c})
|
||||
list(APPEND _lapack_content "extern \"C\" {")
|
||||
endif()
|
||||
set(_lapack_include_str "${_lapack_include_str_extern_C}\#include \"${OPENCV_CBLAS_H_PATH_${_lapack_impl}}\"")
|
||||
if(NOT OPENCV_SKIP_LAPACK_MSVC_FIX)
|
||||
list(APPEND _lapack_content "
|
||||
#ifdef _MSC_VER
|
||||
#include <complex.h>
|
||||
#define lapack_complex_float _Fcomplex
|
||||
#define lapack_complex_double _Dcomplex
|
||||
#endif
|
||||
")
|
||||
endif()
|
||||
list(APPEND _lapack_content "#include \"${OPENCV_CBLAS_H_PATH_${_lapack_impl}}\"")
|
||||
if(NOT "${OPENCV_CBLAS_H_PATH_${_lapack_impl}}" STREQUAL "${OPENCV_LAPACKE_H_PATH_${_lapack_impl}}")
|
||||
set(_lapack_include_str "${_lapack_include_str}\n#include \"${OPENCV_LAPACKE_H_PATH_${_lapack_impl}}\"")
|
||||
list(APPEND _lapack_content "#include \"${OPENCV_LAPACKE_H_PATH_${_lapack_impl}}\"")
|
||||
endif()
|
||||
set(_lapack_include_str "${_lapack_include_str}\n${_lapack_include_str_extern_C_end}")
|
||||
# update file contents (if required)
|
||||
set(__content_str "")
|
||||
if(EXISTS "${CBLAS_H_PROXY_PATH}")
|
||||
file(READ "${CBLAS_H_PROXY_PATH}" __content_str)
|
||||
endif()
|
||||
if(NOT " ${__content_str}" STREQUAL " ${_lapack_include_str}")
|
||||
file(WRITE "${CBLAS_H_PROXY_PATH}" "${_lapack_include_str}")
|
||||
if(${_lapack_add_extern_c})
|
||||
list(APPEND _lapack_content "}")
|
||||
endif()
|
||||
|
||||
string(REPLACE ";" "\n" _lapack_content "${_lapack_content}")
|
||||
ocv_update_file("${CBLAS_H_PROXY_PATH}" "${_lapack_content}")
|
||||
|
||||
try_compile(__VALID_LAPACK
|
||||
"${OpenCV_BINARY_DIR}"
|
||||
"${OpenCV_SOURCE_DIR}/cmake/checks/lapack_check.cpp"
|
||||
|
||||
@@ -64,7 +64,7 @@ if(WITH_GTK AND NOT HAVE_QT)
|
||||
if(WITH_OPENGL AND NOT HAVE_GTK3)
|
||||
ocv_check_modules(GTKGLEXT gtkglext-1.0)
|
||||
if(HAVE_GTKGLEXT)
|
||||
ocv_append_build_options(GTKGLEXT GTHREAD)
|
||||
ocv_append_build_options(HIGHGUI GTKGLEXT)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -40,19 +40,67 @@ To eliminate this warning remove WITH_CUDA=ON CMake configuration option.
|
||||
endif(WITH_CUDA)
|
||||
|
||||
# --- Eigen ---
|
||||
if(WITH_EIGEN)
|
||||
find_path(EIGEN_INCLUDE_PATH "Eigen/Core"
|
||||
PATHS /usr/local /opt /usr $ENV{EIGEN_ROOT}/include ENV ProgramFiles ENV ProgramW6432
|
||||
PATH_SUFFIXES include/eigen3 include/eigen2 Eigen/include/eigen3 Eigen/include/eigen2
|
||||
DOC "The path to Eigen3/Eigen2 headers"
|
||||
CMAKE_FIND_ROOT_PATH_BOTH)
|
||||
if(WITH_EIGEN AND NOT HAVE_EIGEN)
|
||||
find_package(Eigen3 QUIET)
|
||||
|
||||
if(EIGEN_INCLUDE_PATH)
|
||||
ocv_include_directories(${EIGEN_INCLUDE_PATH})
|
||||
ocv_parse_header("${EIGEN_INCLUDE_PATH}/Eigen/src/Core/util/Macros.h" EIGEN_VERSION_LINES EIGEN_WORLD_VERSION EIGEN_MAJOR_VERSION EIGEN_MINOR_VERSION)
|
||||
set(HAVE_EIGEN 1)
|
||||
if(Eigen3_FOUND)
|
||||
if(TARGET Eigen3::Eigen)
|
||||
# Use Eigen3 imported target if possible
|
||||
list(APPEND OPENCV_LINKER_LIBS Eigen3::Eigen)
|
||||
set(HAVE_EIGEN 1)
|
||||
else()
|
||||
if(DEFINED EIGEN3_INCLUDE_DIRS)
|
||||
set(EIGEN_INCLUDE_PATH ${EIGEN3_INCLUDE_DIRS})
|
||||
set(HAVE_EIGEN 1)
|
||||
elseif(DEFINED EIGEN3_INCLUDE_DIR)
|
||||
set(EIGEN_INCLUDE_PATH ${EIGEN3_INCLUDE_DIR})
|
||||
set(HAVE_EIGEN 1)
|
||||
endif()
|
||||
endif()
|
||||
if(HAVE_EIGEN)
|
||||
if(DEFINED EIGEN3_WORLD_VERSION) # CMake module
|
||||
set(EIGEN_WORLD_VERSION ${EIGEN3_WORLD_VERSION})
|
||||
set(EIGEN_MAJOR_VERSION ${EIGEN3_MAJOR_VERSION})
|
||||
set(EIGEN_MINOR_VERSION ${EIGEN3_MINOR_VERSION})
|
||||
else() # Eigen config file
|
||||
set(EIGEN_WORLD_VERSION ${EIGEN3_VERSION_MAJOR})
|
||||
set(EIGEN_MAJOR_VERSION ${EIGEN3_VERSION_MINOR})
|
||||
set(EIGEN_MINOR_VERSION ${EIGEN3_VERSION_PATCH})
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
endif(WITH_EIGEN)
|
||||
|
||||
if(NOT HAVE_EIGEN)
|
||||
if(NOT EIGEN_INCLUDE_PATH OR NOT EXISTS "${EIGEN_INCLUDE_PATH}")
|
||||
set(__find_paths "")
|
||||
set(__find_path_extra_options "")
|
||||
if(NOT CMAKE_CROSSCOMPILING)
|
||||
list(APPEND __find_paths /opt)
|
||||
endif()
|
||||
if(DEFINED ENV{EIGEN_ROOT})
|
||||
set(__find_paths "$ENV{EIGEN_ROOT}/include")
|
||||
list(APPEND __find_path_extra_options NO_DEFAULT_PATH)
|
||||
else()
|
||||
set(__find_paths ENV ProgramFiles ENV ProgramW6432)
|
||||
endif()
|
||||
find_path(EIGEN_INCLUDE_PATH "Eigen/Core"
|
||||
PATHS ${__find_paths}
|
||||
PATH_SUFFIXES include/eigen3 include/eigen2 Eigen/include/eigen3 Eigen/include/eigen2
|
||||
DOC "The path to Eigen3/Eigen2 headers"
|
||||
${__find_path_extra_options}
|
||||
)
|
||||
endif()
|
||||
if(EIGEN_INCLUDE_PATH AND EXISTS "${EIGEN_INCLUDE_PATH}")
|
||||
ocv_parse_header("${EIGEN_INCLUDE_PATH}/Eigen/src/Core/util/Macros.h" EIGEN_VERSION_LINES EIGEN_WORLD_VERSION EIGEN_MAJOR_VERSION EIGEN_MINOR_VERSION)
|
||||
set(HAVE_EIGEN 1)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
if(HAVE_EIGEN)
|
||||
if(EIGEN_INCLUDE_PATH AND EXISTS "${EIGEN_INCLUDE_PATH}")
|
||||
ocv_include_directories(SYSTEM ${EIGEN_INCLUDE_PATH})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# --- Clp ---
|
||||
# Ubuntu: sudo apt-get install coinor-libclp-dev coinor-libcoinutils-dev
|
||||
|
||||
Reference in New Issue
Block a user