Skip to content

Commit c7df17e

Browse files
author
Andrey Kamaev
committed
Detect and report parallel framework used
1 parent 0b20faf commit c7df17e

File tree

2 files changed

+40
-10
lines changed

2 files changed

+40
-10
lines changed

CMakeLists.txt

+8-5
Original file line numberDiff line numberDiff line change
@@ -770,11 +770,14 @@ else()
770770
status(" Use IPP:" WITH_IPP AND NOT IPP_FOUND THEN "IPP not found" ELSE NO)
771771
endif()
772772

773-
status(" Use TBB:" HAVE_TBB THEN "YES (ver ${TBB_VERSION_MAJOR}.${TBB_VERSION_MINOR} interface ${TBB_INTERFACE_VERSION})" ELSE NO)
774-
status(" Use C=:" HAVE_CSTRIPES THEN YES ELSE NO)
775-
status(" Use Cuda:" HAVE_CUDA THEN "YES (ver ${CUDA_VERSION_STRING})" ELSE NO)
776-
status(" Use OpenCL:" HAVE_OPENCL THEN YES ELSE NO)
777-
status(" Use Eigen:" HAVE_EIGEN THEN "YES (ver ${EIGEN_WORLD_VERSION}.${EIGEN_MAJOR_VERSION}.${EIGEN_MINOR_VERSION})" ELSE NO)
773+
status(" Use Eigen:" HAVE_EIGEN THEN "YES (ver ${EIGEN_WORLD_VERSION}.${EIGEN_MAJOR_VERSION}.${EIGEN_MINOR_VERSION})" ELSE NO)
774+
status(" Use TBB:" HAVE_TBB THEN "YES (ver ${TBB_VERSION_MAJOR}.${TBB_VERSION_MINOR} interface ${TBB_INTERFACE_VERSION})" ELSE NO)
775+
status(" Use OpenMP:" HAVE_OPENMP THEN YES ELSE NO)
776+
status(" Use GCD" HAVE_GCD THEN YES ELSE NO)
777+
status(" Use Concurrency" HAVE_CONCURRENCY THEN YES ELSE NO)
778+
status(" Use C=:" HAVE_CSTRIPES THEN YES ELSE NO)
779+
status(" Use Cuda:" HAVE_CUDA THEN "YES (ver ${CUDA_VERSION_STRING})" ELSE NO)
780+
status(" Use OpenCL:" HAVE_OPENCL THEN YES ELSE NO)
778781

779782
if(HAVE_CUDA)
780783
status("")

cmake/OpenCVFindLibsPerf.cmake

+32-5
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,6 @@ if(WITH_TBB)
77
include("${OpenCV_SOURCE_DIR}/cmake/OpenCVDetectTBB.cmake")
88
endif(WITH_TBB)
99

10-
# --- C= ---
11-
if(WITH_CSTRIPES)
12-
include("${OpenCV_SOURCE_DIR}/cmake/OpenCVDetectCStripes.cmake")
13-
endif(WITH_CSTRIPES)
14-
1510
# --- IPP ---
1611
ocv_clear_vars(IPP_FOUND)
1712
if(WITH_IPP)
@@ -43,3 +38,35 @@ if(WITH_EIGEN)
4338
set(HAVE_EIGEN 1)
4439
endif()
4540
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(NOT HAVE_TBB AND NOT HAVE_CSTRIPES)
51+
set(_fname "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/omptest.cpp")
52+
FILE(WRITE "${_fname}" "#ifndef _OPENMP\n#error\n#endif\nint main() { return 0; }\n")
53+
TRY_COMPILE(HAVE_OPENMP "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp" "${_fname}")
54+
else()
55+
set(HAVE_OPENMP 0)
56+
endif()
57+
58+
# --- GCD ---
59+
if(APPLE AND NOT HAVE_TBB AND NOT HAVE_CSTRIPES AND NOT HAVE_OPENMP)
60+
set(HAVE_GCD 1)
61+
else()
62+
set(HAVE_GCD 0)
63+
endif()
64+
65+
# --- Concurrency ---
66+
if(MSVC AND NOT HAVE_TBB AND NOT HAVE_CSTRIPES AND NOT HAVE_OPENMP)
67+
set(_fname "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/concurrencytest.cpp")
68+
FILE(WRITE "${_fname}" "#if _MSC_VER < 1600\n#error\n#endif\nint main() { return 0; }\n")
69+
TRY_COMPILE(HAVE_CONCURRENCY "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp" "${_fname}")
70+
else()
71+
set(HAVE_CONCURRENCY 0)
72+
endif()

0 commit comments

Comments
 (0)