Merge pull request #16122 from alalek:cmake_update_cpu_compiler_detection
[platform/upstream/opencv.git] / cmake / OpenCVFindFrameworks.cmake
1 # ----------------------------------------------------------------------------
2 #  Detect frameworks that may be used by 3rd-party libraries as well as OpenCV
3 # ----------------------------------------------------------------------------
4
5 # --- C= ---
6 if(WITH_CSTRIPES AND NOT HAVE_TBB)
7   include("${OpenCV_SOURCE_DIR}/cmake/OpenCVDetectCStripes.cmake")
8 else()
9   set(HAVE_CSTRIPES 0)
10 endif()
11
12 # --- GCD ---
13 if(APPLE AND NOT HAVE_TBB AND NOT HAVE_CSTRIPES)
14   set(HAVE_GCD 1)
15 else()
16   set(HAVE_GCD 0)
17 endif()
18
19 # --- Concurrency ---
20 if(MSVC AND NOT HAVE_TBB AND NOT HAVE_CSTRIPES)
21   set(_fname "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/concurrencytest.cpp")
22   file(WRITE "${_fname}" "#if _MSC_VER < 1600\n#error\n#endif\nint main() { return 0; }\n")
23   try_compile(HAVE_CONCURRENCY "${CMAKE_BINARY_DIR}" "${_fname}")
24   file(REMOVE "${_fname}")
25 else()
26   set(HAVE_CONCURRENCY 0)
27 endif()
28
29 # --- OpenMP ---
30 if(WITH_OPENMP)
31   find_package(OpenMP)
32   if(OPENMP_FOUND)
33     set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
34     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
35   endif()
36   set(HAVE_OPENMP "${OPENMP_FOUND}")
37 endif()
38
39 ocv_clear_vars(HAVE_PTHREADS_PF)
40 if(WITH_PTHREADS_PF AND HAVE_PTHREAD)
41   set(HAVE_PTHREADS_PF 1)
42 else()
43   set(HAVE_PTHREADS_PF 0)
44 endif()