Add OpenCV source code
[platform/upstream/opencv.git] / cmake / OpenCVFindLibsPerf.cmake
1 # ----------------------------------------------------------------------------
2 #  Detect other 3rd-party performance and math libraries
3 # ----------------------------------------------------------------------------
4
5 # --- TBB ---
6 if(WITH_TBB)
7   include("${OpenCV_SOURCE_DIR}/cmake/OpenCVDetectTBB.cmake")
8 endif(WITH_TBB)
9
10 # --- IPP ---
11 ocv_clear_vars(IPP_FOUND)
12 if(WITH_IPP)
13   include("${OpenCV_SOURCE_DIR}/cmake/OpenCVFindIPP.cmake")
14   if(IPP_FOUND)
15     add_definitions(-DHAVE_IPP)
16     ocv_include_directories(${IPP_INCLUDE_DIRS})
17     link_directories(${IPP_LIBRARY_DIRS})
18     set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} ${IPP_LIBRARIES})
19   endif()
20 endif(WITH_IPP)
21
22 # --- CUDA ---
23 if(WITH_CUDA)
24   include("${OpenCV_SOURCE_DIR}/cmake/OpenCVDetectCUDA.cmake")
25 endif(WITH_CUDA)
26
27 # --- Eigen ---
28 if(WITH_EIGEN)
29   find_path(EIGEN_INCLUDE_PATH "Eigen/Core"
30             PATHS /usr/local /opt /usr ENV ProgramFiles ENV ProgramW6432
31             PATH_SUFFIXES include/eigen3 include/eigen2 Eigen/include/eigen3 Eigen/include/eigen2
32             DOC "The path to Eigen3/Eigen2 headers"
33             CMAKE_FIND_ROOT_PATH_BOTH)
34
35   if(EIGEN_INCLUDE_PATH)
36     ocv_include_directories(${EIGEN_INCLUDE_PATH})
37     ocv_parse_header("${EIGEN_INCLUDE_PATH}/Eigen/src/Core/util/Macros.h" EIGEN_VERSION_LINES EIGEN_WORLD_VERSION EIGEN_MAJOR_VERSION EIGEN_MINOR_VERSION)
38     set(HAVE_EIGEN 1)
39   endif()
40 endif(WITH_EIGEN)
41
42 # --- C= ---
43 if(WITH_CSTRIPES AND NOT HAVE_TBB)
44   include("${OpenCV_SOURCE_DIR}/cmake/OpenCVDetectCStripes.cmake")
45 else()
46   set(HAVE_CSTRIPES 0)
47 endif()
48
49 # --- OpenMP ---
50 if(WITH_OPENMP AND NOT HAVE_TBB AND NOT HAVE_CSTRIPES)
51   find_package(OpenMP)
52   if(OPENMP_FOUND)
53     set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
54     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
55   endif()
56   set(HAVE_OPENMP "${OPENMP_FOUND}")
57 endif()
58
59 # --- GCD ---
60 if(APPLE AND NOT HAVE_TBB AND NOT HAVE_CSTRIPES AND NOT HAVE_OPENMP)
61   set(HAVE_GCD 1)
62 else()
63   set(HAVE_GCD 0)
64 endif()
65
66 # --- Concurrency ---
67 if(MSVC AND NOT HAVE_TBB AND NOT HAVE_CSTRIPES AND NOT HAVE_OPENMP)
68   set(_fname "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/concurrencytest.cpp")
69   file(WRITE "${_fname}" "#if _MSC_VER < 1600\n#error\n#endif\nint main() { return 0; }\n")
70   try_compile(HAVE_CONCURRENCY "${CMAKE_BINARY_DIR}" "${_fname}")
71   file(REMOVE "${_fname}")
72 else()
73   set(HAVE_CONCURRENCY 0)
74 endif()