Commit c6445e2d authored by Andrey Kamaev's avatar Andrey Kamaev

Slightly improved build of TBB for Android

parent 8b6aec67
...@@ -5,9 +5,20 @@ endif() ...@@ -5,9 +5,20 @@ endif()
project(tbb) project(tbb)
set(tbb_ver "tbb40_20111003oss") # 4.0 update 3 - build broken
set(tbb_url "http://threadingbuildingblocks.org/uploads/77/177/4.0%20update%201/tbb40_20111003oss_src.tgz") #set(tbb_ver "tbb40_20120201oss")
set(tbb_md5 "7b5d94eb35a563b29ef402e0fd8f15c9") #set(tbb_url "http://threadingbuildingblocks.org/uploads/77/182/4.0%20update%203/tbb40_20120201oss_src.tgz")
#set(tbb_md5 "4669e7d4adee018de7a7b8b972987218")
# 4.0 update 2 - works fine
set(tbb_ver "tbb40_20111130oss")
set(tbb_url "http://threadingbuildingblocks.org/uploads/77/180/4.0%20update%202/tbb40_20111130oss_src.tgz")
set(tbb_md5 "1e6926b21e865e79772119cd44fc3ad8")
# 4.0 update 1 - works fine
#set(tbb_ver "tbb40_20111003oss")
#set(tbb_url "http://threadingbuildingblocks.org/uploads/77/177/4.0%20update%201/tbb40_20111003oss_src.tgz")
#set(tbb_md5 "7b5d94eb35a563b29ef402e0fd8f15c9")
set(tbb_tarball "${CMAKE_CURRENT_SOURCE_DIR}/${tbb_ver}_src.tgz") set(tbb_tarball "${CMAKE_CURRENT_SOURCE_DIR}/${tbb_ver}_src.tgz")
set(tbb_src_dir "${CMAKE_CURRENT_BINARY_DIR}/${tbb_ver}") set(tbb_src_dir "${CMAKE_CURRENT_BINARY_DIR}/${tbb_ver}")
...@@ -68,8 +79,7 @@ if(NOT EXISTS "${tbb_src_dir}") ...@@ -68,8 +79,7 @@ if(NOT EXISTS "${tbb_src_dir}")
endif() endif()
endif() endif()
set(TBB_INCLUDE_DIRS "${tbb_src_dir}/include" CACHE PATH "TBB headers location") set(TBB_INCLUDE_DIRS "${tbb_src_dir}/include" PARENT_SCOPE)
mark_as_advanced(TBB_INCLUDE_DIRS)
include_directories("${tbb_src_dir}/include" include_directories("${tbb_src_dir}/include"
"${tbb_src_dir}/src/" "${tbb_src_dir}/src/"
...@@ -78,23 +88,22 @@ include_directories("${tbb_src_dir}/include" ...@@ -78,23 +88,22 @@ include_directories("${tbb_src_dir}/include"
file(GLOB lib_srcs "${tbb_src_dir}/src/tbb/*.cpp") file(GLOB lib_srcs "${tbb_src_dir}/src/tbb/*.cpp")
file(GLOB lib_hdrs "${tbb_src_dir}/src/tbb/*.h") file(GLOB lib_hdrs "${tbb_src_dir}/src/tbb/*.h")
list(APPEND lib_srcs "${tbb_src_dir}/src/rml/client/rml_tbb.cpp") list(APPEND lib_srcs "${tbb_src_dir}/src/rml/client/rml_tbb.cpp")
add_definitions(-D__TBB_DYNAMIC_LOAD_ENABLED=0 add_definitions(-D__TBB_DYNAMIC_LOAD_ENABLED=0 #required
-D__TBB_NO_DLOPEN -D__TBB_BUILD=1 #required
-D__TBB_WEAK_SYMBOLS -D__TBB_USE_GENERIC_DWORD_LOAD_STORE=1 #needed by TBB 4.0 update 1,2
-DTBB_USE_GCC_BUILTINS=1 -D__TBB_TASK_CPP_DIRECTLY_INCLUDED=1 #needed by TBB 4.0 update 3
-DUSE_PTHREAD -DTBB_USE_GCC_BUILTINS=1 #required
-D__TBB_USE_GENERIC_DWORD_LOAD_STORE=1 -DTBB_USE_DEBUG=0 #just ot be sure
-D__TBB_GCC_BUILTIN_ATOMICS_PRESENT=1 -DTBB_NO_LEGACY=1 #don't need backward compatibility
-D__TBB_BUILD=1 -DUSE_PTHREAD #required
-DDO_ITT_NOTIFY -DDO_ITT_NOTIFY=0 #it seems that we don't need these notifications
) )
add_library(tbb STATIC ${lib_srcs} ${lib_hdrs}) add_library(tbb STATIC ${lib_srcs} ${lib_hdrs})
target_link_libraries(tbb c m dl)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w -include \"${CMAKE_CURRENT_SOURCE_DIR}/android_additional.h\"") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w -include \"${CMAKE_CURRENT_SOURCE_DIR}/android_additional.h\"")
set_target_properties(tbb set_target_properties(tbb
......
if(ANDROID) if(ANDROID)
set(HAVE_TBB 1)
add_subdirectory("${OpenCV_SOURCE_DIR}/3rdparty/tbb") add_subdirectory("${OpenCV_SOURCE_DIR}/3rdparty/tbb")
if(NOT ${TBB_INCLUDE_DIRS} STREQUAL "") include_directories(${TBB_INCLUDE_DIRS})
include_directories(${TBB_INCLUDE_DIRS})
endif()
set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} tbb) set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} tbb)
add_definitions(-DTBB_USE_GCC_BUILTINS=1 -D__TBB_GCC_BUILTIN_ATOMICS_PRESENT=1 -D__TBB_USE_GENERIC_DWORD_LOAD_STORE=1) add_definitions(-DTBB_USE_GCC_BUILTINS=1 -D__TBB_GCC_BUILTIN_ATOMICS_PRESENT=1 -D__TBB_USE_GENERIC_DWORD_LOAD_STORE=1)
set(HAVE_TBB 1)
elseif(UNIX AND NOT APPLE) elseif(UNIX AND NOT APPLE)
PKG_CHECK_MODULES(TBB tbb) PKG_CHECK_MODULES(TBB tbb)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment