2 add_subdirectory("${OpenCV_SOURCE_DIR}/3rdparty/tbb")
3 include_directories(SYSTEM ${TBB_INCLUDE_DIRS})
4 set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} tbb)
5 add_definitions(-DTBB_USE_GCC_BUILTINS=1 -D__TBB_GCC_BUILTIN_ATOMICS_PRESENT=1)
6 if(tbb_need_GENERIC_DWORD_LOAD_STORE)
7 add_definitions(-D__TBB_USE_GENERIC_DWORD_LOAD_STORE=1)
10 elseif(UNIX AND NOT APPLE)
11 PKG_CHECK_MODULES(TBB tbb)
15 if(NOT ${TBB_INCLUDE_DIRS} STREQUAL "")
16 ocv_include_directories(${TBB_INCLUDE_DIRS})
18 link_directories(${TBB_LIBRARY_DIRS})
19 set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} ${TBB_LIBRARIES})
24 set(TBB_DEFAULT_INCLUDE_DIRS
25 "/opt/intel/tbb/include" "/usr/local/include" "/usr/include"
26 "C:/Program Files/Intel/TBB" "C:/Program Files (x86)/Intel/TBB"
27 "C:/Program Files (x86)/tbb/include"
28 "C:/Program Files (x86)/tbb/include"
29 "${CMAKE_INSTALL_PREFIX}/include")
31 find_path(TBB_INCLUDE_DIRS "tbb/tbb.h" PATHS ${TBB_INCLUDE_DIR} ${TBB_DEFAULT_INCLUDE_DIRS} DOC "The path to TBB headers")
34 set(TBB_LIB_DIR "${TBB_INCLUDE_DIRS}/../lib" CACHE PATH "Full path of TBB library directory")
35 link_directories("${TBB_LIB_DIR}")
38 set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} libtbb.dylib)
40 set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} tbb)
41 add_definitions(-DTBB_USE_GCC_BUILTINS)
43 set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} tbb)
45 if(CMAKE_COMPILER_IS_GNUCXX)
46 set(TBB_LIB_DIR "${TBB_INCLUDE_DIRS}/../lib" CACHE PATH "Full path of TBB library directory")
47 link_directories("${TBB_LIB_DIR}")
48 set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} tbb)
50 get_filename_component(_TBB_LIB_PATH "${TBB_INCLUDE_DIRS}/../lib" ABSOLUTE)
52 if(CMAKE_SYSTEM_PROCESSOR MATCHES amd64*|x86_64* OR MSVC64)
53 set(_TBB_LIB_PATH "${_TBB_LIB_PATH}/intel64")
55 set(_TBB_LIB_PATH "${_TBB_LIB_PATH}/ia32")
59 set(_TBB_LIB_PATH "${_TBB_LIB_PATH}/vc8")
61 set(_TBB_LIB_PATH "${_TBB_LIB_PATH}/vc9")
63 set(_TBB_LIB_PATH "${_TBB_LIB_PATH}/vc10")
65 set(_TBB_LIB_PATH "${_TBB_LIB_PATH}/vc11")
67 set(_TBB_LIB_PATH "${_TBB_LIB_PATH}/vc12")
69 set(TBB_LIB_DIR "${_TBB_LIB_PATH}" CACHE PATH "Full path of TBB library directory")
70 link_directories("${TBB_LIB_DIR}")
75 if(NOT "${TBB_INCLUDE_DIRS}" STREQUAL "")
76 ocv_include_directories("${TBB_INCLUDE_DIRS}")
78 endif(TBB_INCLUDE_DIRS)
83 find_file(TBB_STDDEF_PATH tbb/tbb_stddef.h "${TBB_INCLUDE_DIRS}")
84 mark_as_advanced(TBB _STDDEF_PATH)
86 if(HAVE_TBB AND TBB_STDDEF_PATH)
87 ocv_parse_header("${TBB_STDDEF_PATH}" TBB_VERSION_LINES TBB_VERSION_MAJOR TBB_VERSION_MINOR TBB_INTERFACE_VERSION)
89 unset(TBB_VERSION_MAJOR)
90 unset(TBB_VERSION_MINOR)
91 unset(TBB_INTERFACE_VERSION)