Skip to content

Commit 5d0637d

Browse files
authored
Remove extra TBB build (#178)
1 parent ee6a106 commit 5d0637d

7 files changed

Lines changed: 41 additions & 33 deletions

File tree

3rdparty/CMakeLists.txt

Lines changed: 35 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,39 @@
11
add_subdirectory(googletest)
22

3-
file(MAKE_DIRECTORY "${CMAKE_SOURCE_DIR}/3rdparty/TBB/build")
3+
# Unified TBB Configuration
4+
option(TBB_TEST "Build TBB tests" OFF)
5+
option(TBB_EXAMPLES "Build TBB examples" OFF)
6+
set(TBB_STRICT OFF CACHE BOOL "Treat compiler warnings as errors")
47

5-
execute_process(
6-
COMMAND ${CMAKE_COMMAND} -S "${CMAKE_SOURCE_DIR}/3rdparty/TBB" -B "${CMAKE_SOURCE_DIR}/3rdparty/TBB/build" -DCMAKE_C_COMPILER_LAUNCHER=${CMAKE_C_COMPILER_LAUNCHER} -DCMAKE_CXX_COMPILER_LAUNCHER=${CMAKE_CXX_COMPILER_LAUNCHER} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DTBB_OUTPUT_DIR_BASE=tbb
7-
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/3rdparty/TBB/build"
8-
)
9-
execute_process(
10-
COMMAND ${CMAKE_COMMAND} --build "${CMAKE_SOURCE_DIR}/3rdparty/TBB/build" --config "${CMAKE_BUILD_TYPE}"
11-
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/3rdparty/TBB/build"
12-
)
13-
14-
option(TBB_TEST OFF)
8+
# Configure TBB with unified settings
159
add_subdirectory(TBB)
10+
11+
# Create a unified TBB interface target
12+
if(NOT TARGET TBB_unified)
13+
add_library(TBB_unified INTERFACE)
14+
target_link_libraries(TBB_unified INTERFACE TBB::tbb)
15+
target_include_directories(TBB_unified INTERFACE
16+
$<TARGET_PROPERTY:TBB::tbb,INTERFACE_INCLUDE_DIRECTORIES>
17+
)
18+
19+
# Platform-specific runtime library handling for Windows
20+
if(WIN32)
21+
# Get the TBB library directory based on build type
22+
if(CMAKE_BUILD_TYPE)
23+
string(TOLOWER ${CMAKE_BUILD_TYPE} lower_build)
24+
set(TBB_LIB_DIR "${CMAKE_SOURCE_DIR}/3rdparty/TBB/build/tbb_${lower_build}")
25+
else()
26+
set(TBB_LIB_DIR "${CMAKE_SOURCE_DIR}/3rdparty/TBB/build/tbb_debug")
27+
endif()
28+
29+
# Create a custom target to copy TBB runtime libraries
30+
add_custom_target(copy_tbb_runtime ALL
31+
COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_BINARY_DIR}/bin"
32+
COMMAND ${CMAKE_COMMAND} -E copy_if_different
33+
"$<TARGET_FILE:TBB::tbb>"
34+
"${CMAKE_BINARY_DIR}/bin/"
35+
COMMENT "Copying TBB runtime libraries"
36+
)
37+
add_dependencies(TBB_unified copy_tbb_runtime)
38+
endif()
39+
endif()

app/Accuracy/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ set_target_properties(ReadLib PROPERTIES LINKER_LANGUAGE CXX)
77
find_package( OpenCV REQUIRED PATHS "${CMAKE_SOURCE_DIR}/3rdparty/opencv/build" )
88
include_directories( ${OpenCV_INCLUDE_DIRS} )
99
target_link_libraries( ACCLib ${OpenCV_LIBS} )
10-
target_link_libraries( ACCLib TBB::tbb)
10+
target_link_libraries( ACCLib TBB_unified)
1111
target_link_libraries( ACCLib layers_lib)
1212
target_link_libraries( ACCLib gtest_main)
1313

app/AccuracyImgNet/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@ add_executable(ACCImgNet accimgnet.cpp)
33
find_package( OpenCV REQUIRED PATHS "${CMAKE_SOURCE_DIR}/3rdparty/opencv/build" )
44
include_directories( ${OpenCV_INCLUDE_DIRS} )
55
target_link_libraries( ACCImgNet ${OpenCV_LIBS} )
6-
target_link_libraries( ACCImgNet TBB::tbb)
6+
target_link_libraries( ACCImgNet TBB_unified)
77
target_link_libraries( ACCImgNet layers_lib)
88
target_link_libraries( ACCImgNet gtest_main)

app/Graph/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ include_directories(${OpenCV_INCLUDE_DIRS})
1919

2020
target_link_libraries(BuildGraph PUBLIC ${OpenCV_LIBS})
2121
target_link_libraries(BuildGraph PUBLIC reader_lib)
22-
target_link_libraries(BuildGraph PUBLIC TBB::tbb)
22+
target_link_libraries(BuildGraph PUBLIC TBB_unified)
2323
target_link_libraries(BuildGraph PUBLIC layers_lib)
2424
target_link_libraries(BuildGraph PUBLIC gtest_main)
2525

app/ReaderImage/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ set_target_properties(ReadLib PROPERTIES LINKER_LANGUAGE CXX)
1919
find_package( OpenCV REQUIRED PATHS "${CMAKE_SOURCE_DIR}/3rdparty/opencv/build" )
2020
include_directories( ${OpenCV_INCLUDE_DIRS} )
2121
target_link_libraries( ReadLib ${OpenCV_LIBS} )
22-
target_link_libraries( ReadLib TBB::tbb)
22+
target_link_libraries( ReadLib TBB_unified)
2323

2424
add_executable(Reader reader_img.cpp)
2525
target_link_libraries(Reader ReadLib)

src/graph/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
file(GLOB_RECURSE graph_src *.cpp)
22
add_library(graph_lib STATIC "${GRAPH_HEADERS}" "${graph_src}")
3-
target_link_libraries(graph_lib PUBLIC TBB::tbb)
3+
target_link_libraries(graph_lib PUBLIC TBB_unified)

src/layers/CMakeLists.txt

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,3 @@
11
file(GLOB_RECURSE layers_src *.cpp)
22
add_library(layers_lib STATIC "${LAYERS_HEADERS}" "${layers_src}")
3-
target_link_libraries(layers_lib PUBLIC TBB::tbb)
4-
if (WIN32)
5-
if (CMAKE_BUILD_TYPE)
6-
string(TOLOWER ${CMAKE_BUILD_TYPE} lower_build)
7-
file(GLOB_RECURSE tbb_files "${CMAKE_SOURCE_DIR}/3rdparty/TBB/build/tbb_${lower_build}/tbb*")
8-
add_custom_command(TARGET layers_lib POST_BUILD
9-
COMMAND ${CMAKE_COMMAND} -E copy
10-
${tbb_files}
11-
"${CMAKE_BINARY_DIR}/bin/")
12-
else()
13-
file(GLOB_RECURSE tbb_files "${CMAKE_SOURCE_DIR}/3rdparty/TBB/build/tbb_debug/tbb*")
14-
add_custom_command(TARGET layers_lib POST_BUILD
15-
COMMAND ${CMAKE_COMMAND} -E copy
16-
${tbb_files}
17-
"${CMAKE_BINARY_DIR}/bin/")
18-
endif()
19-
endif()
3+
target_link_libraries(layers_lib PUBLIC TBB_unified)

0 commit comments

Comments
 (0)