|
|
|
@ -1,15 +1,15 @@ |
|
|
|
|
#Cross compile TBB from source |
|
|
|
|
project(tbb) |
|
|
|
|
project(tbb CXX) |
|
|
|
|
|
|
|
|
|
if (WIN32 AND NOT ARM) |
|
|
|
|
message(FATAL_ERROR "BUILD_TBB option supports Windows on ARM only!\nUse regular official TBB build instead of the BUILD_TBB option!") |
|
|
|
|
endif() |
|
|
|
|
|
|
|
|
|
ocv_update(OPENCV_TBB_RELEASE "v2020.0") |
|
|
|
|
ocv_update(OPENCV_TBB_RELEASE_MD5 "5858dd01ec007c139d5d178b21e06dae") |
|
|
|
|
ocv_update(OPENCV_TBB_RELEASE "v2020.1") |
|
|
|
|
ocv_update(OPENCV_TBB_RELEASE_MD5 "734f335d06ee80a7d4a20cc0da734c59") |
|
|
|
|
ocv_update(OPENCV_TBB_FILENAME "${OPENCV_TBB_RELEASE}.tar.gz") |
|
|
|
|
string(REGEX REPLACE "^v" "" OPENCV_TBB_RELEASE_ "${OPENCV_TBB_RELEASE}") |
|
|
|
|
ocv_update(OPENCV_TBB_SUBDIR "tbb-${OPENCV_TBB_RELEASE_}") |
|
|
|
|
#ocv_update(OPENCV_TBB_SUBDIR ...) |
|
|
|
|
|
|
|
|
|
set(tbb_src_dir "${OpenCV_BINARY_DIR}/3rdparty/tbb") |
|
|
|
|
ocv_download(FILENAME ${OPENCV_TBB_FILENAME} |
|
|
|
@ -25,6 +25,16 @@ ocv_download(FILENAME ${OPENCV_TBB_FILENAME} |
|
|
|
|
if(NOT res) |
|
|
|
|
return() |
|
|
|
|
endif() |
|
|
|
|
if(OPENCV_TBB_SUBDIR) |
|
|
|
|
# use current value |
|
|
|
|
ocv_assert(EXISTS "${tbb_src_dir}/${OPENCV_TBB_SUBDIR}") |
|
|
|
|
elseif(EXISTS "${tbb_src_dir}/oneTBB-${OPENCV_TBB_RELEASE_}") |
|
|
|
|
set(OPENCV_TBB_SUBDIR "oneTBB-${OPENCV_TBB_RELEASE_}") |
|
|
|
|
elseif(EXISTS "${tbb_src_dir}/tbb-${OPENCV_TBB_RELEASE_}") |
|
|
|
|
set(OPENCV_TBB_SUBDIR "oneTBB-${OPENCV_TBB_RELEASE_}") |
|
|
|
|
else() |
|
|
|
|
message(FATAL_ERROR "TBB: Can't configure TBB. Specify OPENCV_TBB_SUBDIR through command-line.") |
|
|
|
|
endif() |
|
|
|
|
set(tbb_src_dir "${tbb_src_dir}/${OPENCV_TBB_SUBDIR}") |
|
|
|
|
|
|
|
|
|
ocv_include_directories("${tbb_src_dir}/include" |
|
|
|
@ -36,11 +46,11 @@ file(GLOB lib_srcs "${tbb_src_dir}/src/tbb/*.cpp") |
|
|
|
|
file(GLOB lib_hdrs "${tbb_src_dir}/src/tbb/*.h") |
|
|
|
|
list(APPEND lib_srcs "${tbb_src_dir}/src/rml/client/rml_tbb.cpp") |
|
|
|
|
ocv_list_filterout(lib_srcs "${tbb_src_dir}/src/tbb/tbbbind.cpp") # hwloc.h requirement |
|
|
|
|
ocv_list_filterout(lib_srcs "${tbb_src_dir}/src/tbb/tbb_bind.cpp") # hwloc.h requirement 2020.1+ |
|
|
|
|
|
|
|
|
|
if (WIN32) |
|
|
|
|
add_definitions(/D__TBB_DYNAMIC_LOAD_ENABLED=0 |
|
|
|
|
/D__TBB_BUILD=1 |
|
|
|
|
/DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 |
|
|
|
|
/DTBB_NO_LEGACY=1 |
|
|
|
|
/D_UNICODE |
|
|
|
|
/DUNICODE |
|
|
|
@ -99,7 +109,11 @@ configure_file("${CMAKE_CURRENT_SOURCE_DIR}/${tbb_version_file}.cmakein" "${CMAK |
|
|
|
|
list(APPEND TBB_SOURCE_FILES "${CMAKE_CURRENT_BINARY_DIR}/${tbb_version_file}") |
|
|
|
|
|
|
|
|
|
add_library(tbb ${TBB_SOURCE_FILES}) |
|
|
|
|
target_compile_definitions(tbb PUBLIC TBB_USE_GCC_BUILTINS=1 __TBB_GCC_BUILTIN_ATOMICS_PRESENT=1) |
|
|
|
|
target_compile_definitions(tbb PUBLIC |
|
|
|
|
TBB_USE_GCC_BUILTINS=1 |
|
|
|
|
__TBB_GCC_BUILTIN_ATOMICS_PRESENT=1 |
|
|
|
|
TBB_SUPPRESS_DEPRECATED_MESSAGES=1 |
|
|
|
|
) |
|
|
|
|
target_include_directories(tbb SYSTEM PUBLIC $<BUILD_INTERFACE:${tbb_src_dir}/include> |
|
|
|
|
PRIVATE "${CMAKE_CURRENT_BINARY_DIR}" |
|
|
|
|
) |
|
|
|
|