Skip to content

Commit 113a3d3

Browse files
committed
[tbb] use proper CMake target
1 parent bcb75ad commit 113a3d3

File tree

9 files changed

+145
-340
lines changed

9 files changed

+145
-340
lines changed

builtins/tbb/CMakeLists.txt

Lines changed: 29 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
set(tbb_url ${lcgpackages}/oneTBB-2021.9.0.tar.gz)
2-
set(tbb_sha256 1ce48f34dada7837f510735ff1172f6e2c261b09460e3bf773b49791d247d24e)
1+
set(ROOT_TBB_URL ${lcgpackages}/oneTBB-2021.9.0.tar.gz)
2+
set(ROOT_TBB_HASH 1ce48f34dada7837f510735ff1172f6e2c261b09460e3bf773b49791d247d24e)
33

44
if(MSVC)
55
if(CMAKE_GENERATOR MATCHES Ninja)
@@ -13,25 +13,24 @@ if(MSVC)
1313
set(tbbsuffix "_debug")
1414
endif()
1515
endif()
16-
set(TBB_LIBRARIES ${CMAKE_BINARY_DIR}/lib/tbb12${tbbsuffix}.lib)
17-
set(TBB_CXXFLAGS "-D__TBB_NO_IMPLICIT_LINKAGE=1")
16+
set(ROOT_TBB_LIBRARY ${CMAKE_BINARY_DIR}/lib/tbb12${tbbsuffix}.lib)
1817
install(DIRECTORY ${CMAKE_BINARY_DIR}/bin/ DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT libraries FILES_MATCHING PATTERN "tbb*.dll")
1918
install(DIRECTORY ${CMAKE_BINARY_DIR}/lib/ DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT libraries FILES_MATCHING PATTERN "tbb*.lib")
2019
else()
2120
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
2221
set(tbbsuffix "_debug")
2322
endif()
24-
set(TBB_LIBRARIES ${CMAKE_BINARY_DIR}/lib/libtbb${tbbsuffix}${CMAKE_SHARED_LIBRARY_SUFFIX})
23+
set(ROOT_TBB_LIBRARY ${CMAKE_BINARY_DIR}/lib/libtbb${tbbsuffix}${CMAKE_SHARED_LIBRARY_SUFFIX})
2524
install(DIRECTORY ${CMAKE_BINARY_DIR}/lib/ DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT libraries FILES_MATCHING PATTERN "libtbb*")
2625
endif()
2726
if(tbb_build)
2827
set(TBB_EXTRA_BUILD_ARGS --config ${tbb_build})
2928
endif()
3029

3130
ExternalProject_Add(
32-
TBB
33-
URL ${tbb_url}
34-
URL_HASH SHA256=${tbb_sha256}
31+
BUILTIN_TBB
32+
URL ${ROOT_TBB_URL}
33+
URL_HASH SHA256=${ROOT_TBB_HASH}
3534
INSTALL_DIR ${CMAKE_BINARY_DIR}
3635
CMAKE_ARGS -G ${CMAKE_GENERATOR}
3736
-DCMAKE_POLICY_VERSION_MINIMUM=3.5
@@ -51,18 +50,31 @@ ExternalProject_Add(
5150
BUILD_COMMAND ${CMAKE_COMMAND} --build . ${TBB_EXTRA_BUILD_ARGS}
5251
INSTALL_COMMAND ${CMAKE_COMMAND} --install . ${TBB_EXTRA_BUILD_ARGS}
5352
LOG_DOWNLOAD 1 LOG_CONFIGURE 1 LOG_BUILD 1 LOG_INSTALL 1 LOG_OUTPUT_ON_FAILURE 1
54-
BUILD_BYPRODUCTS ${TBB_LIBRARIES}
53+
BUILD_BYPRODUCTS ${ROOT_TBB_LIBRARY}
5554
TIMEOUT 600
5655
)
5756

57+
set(ROOT_TBB_INCLUDE_DIR ${CMAKE_BINARY_DIR}/ginclude)
58+
5859
ExternalProject_Add_Step(
59-
TBB tbb2externals
60-
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_BINARY_DIR}/include/tbb ${CMAKE_BINARY_DIR}/ginclude/tbb
61-
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_BINARY_DIR}/include/oneapi ${CMAKE_BINARY_DIR}/ginclude/oneapi
60+
BUILTIN_TBB tbb2externals
61+
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_BINARY_DIR}/include/tbb ${ROOT_TBB_INCLUDE_DIR}/tbb
62+
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_BINARY_DIR}/include/oneapi ${ROOT_TBB_INCLUDE_DIR}/oneapi
6263
DEPENDEES install
6364
)
64-
set(TBB_INCLUDE_DIRS ${CMAKE_BINARY_DIR}/ginclude PARENT_SCOPE)
65-
set(TBB_CXXFLAGS "-DTBB_SUPPRESS_DEPRECATED_MESSAGES=1" PARENT_SCOPE)
66-
# The following line is needed to generate the proper dependency with: BUILTINS TBB (in Imt)
67-
# and generated with this syntax: add_dependencies(${library} ${${arg1}_TARGET})
68-
set(TBB_TARGET TBB PARENT_SCOPE)
65+
66+
file(MAKE_DIRECTORY ${ROOT_TBB_INCLUDE_DIR})
67+
add_library(TBB::tbb IMPORTED STATIC GLOBAL)
68+
add_dependencies(TBB::tbb BUILTIN_TBB)
69+
set_target_properties(TBB::tbb PROPERTIES
70+
IMPORTED_LOCATION ${ROOT_TBB_LIBRARY}
71+
INTERFACE_INCLUDE_DIRECTORIES ${ROOT_TBB_INCLUDE_DIR})
72+
target_compile_definitions(TBB::tbb INTERFACE TBB_SUPPRESS_DEPRECATED_MESSAGES=1)
73+
if(MSVC)
74+
target_compile_definitions(TBB::tbb INTERFACE __TBB_NO_IMPLICIT_LINKAGE=1)
75+
endif()
76+
77+
set(TBB_FOUND ON PARENT_SCOPE)
78+
set(TBB_VERSION ${ROOT_TBB_VERSION} PARENT_SCOPE)
79+
set(TBB_INCLUDE_DIRS ${ROOT_TBB_INCLUDE_DIR} PARENT_SCOPE)
80+
set(TBB_LIBRARIES ${ROOT_TBB_LIBRARY} PARENT_SCOPE)

0 commit comments

Comments
 (0)