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
44if (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" )
2019else ()
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*" )
2625endif ()
2726if (tbb_build)
2827 set (TBB_EXTRA_BUILD_ARGS --config ${tbb_build} )
2928endif ()
3029
3130ExternalProject_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
@@ -41,6 +40,7 @@ ExternalProject_Add(
4140 -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
4241 -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
4342 -DCMAKE_INSTALL_INCLUDEDIR=${CMAKE_BINARY_DIR} /include
43+ -DCMAKE_INSTALL_BINDIR=${CMAKE_BINARY_DIR} /bin
4444 -DCMAKE_INSTALL_LIBDIR=${CMAKE_BINARY_DIR} /lib
4545 -DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}
4646 -DTBBMALLOC_BUILD=OFF
@@ -51,18 +51,31 @@ ExternalProject_Add(
5151 BUILD_COMMAND ${CMAKE_COMMAND} --build . ${TBB_EXTRA_BUILD_ARGS}
5252 INSTALL_COMMAND ${CMAKE_COMMAND} --install . ${TBB_EXTRA_BUILD_ARGS}
5353 LOG_DOWNLOAD 1 LOG_CONFIGURE 1 LOG_BUILD 1 LOG_INSTALL 1 LOG_OUTPUT_ON_FAILURE 1
54- BUILD_BYPRODUCTS ${TBB_LIBRARIES }
54+ BUILD_BYPRODUCTS ${ROOT_TBB_LIBRARY }
5555 TIMEOUT 600
5656)
5757
58+ set (ROOT_TBB_INCLUDE_DIR ${CMAKE_BINARY_DIR} /ginclude)
59+
5860ExternalProject_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
61+ BUILTIN_TBB tbb2externals
62+ COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_BINARY_DIR} /include/tbb ${ROOT_TBB_INCLUDE_DIR} /tbb
63+ COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_BINARY_DIR} /include/oneapi ${ROOT_TBB_INCLUDE_DIR} /oneapi
6264 DEPENDEES install
6365)
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 )
66+
67+ file (MAKE_DIRECTORY ${ROOT_TBB_INCLUDE_DIR} )
68+ add_library (TBB::tbb IMPORTED STATIC GLOBAL )
69+ add_dependencies (TBB::tbb BUILTIN_TBB )
70+ set_target_properties (TBB::tbb PROPERTIES
71+ IMPORTED_LOCATION ${ROOT_TBB_LIBRARY}
72+ INTERFACE_INCLUDE_DIRECTORIES ${ROOT_TBB_INCLUDE_DIR} )
73+ target_compile_definitions (TBB::tbb INTERFACE TBB_SUPPRESS_DEPRECATED_MESSAGES=1 )
74+ if (MSVC )
75+ target_compile_definitions (TBB::tbb INTERFACE __TBB_NO_IMPLICIT_LINKAGE=1 )
76+ endif ()
77+
78+ set (TBB_FOUND ON PARENT_SCOPE )
79+ set (TBB_VERSION ${ROOT_TBB_VERSION} PARENT_SCOPE )
80+ set (TBB_INCLUDE_DIRS ${ROOT_TBB_INCLUDE_DIR} PARENT_SCOPE )
81+ set (TBB_LIBRARIES ${ROOT_TBB_LIBRARY} PARENT_SCOPE )
0 commit comments