1- cmake_minimum_required (VERSION 3.3 )
1+ cmake_minimum_required (VERSION 3.16.3 FATAL_ERROR )
22
33project (ITKPythonPackage CXX)
44
@@ -14,6 +14,8 @@ if(NOT DEFINED ITKPythonPackage_WHEEL_NAME)
1414endif ()
1515message (STATUS "SuperBuild - ITKPythonPackage_WHEEL_NAME:${ITKPythonPackage_WHEEL_NAME} " )
1616
17+ option (ITKPythonPackage_USE_TBB "Build and use oneTBB in the ITK python package" ON )
18+
1719if (ITKPythonPackage_SUPERBUILD)
1820
1921 #-----------------------------------------------------------------------------
@@ -44,8 +46,8 @@ if(ITKPythonPackage_SUPERBUILD)
4446 # ITK_SOURCE_DIR: Path to an existing source directory
4547 #
4648
47- option ( ITKPythonPackage_BUILD_PYTHON "Build ITK python module" ON )
48- mark_as_advanced ( ITKPythonPackage_BUILD_PYTHON )
49+ option ( ITKPythonPackage_BUILD_PYTHON "Build ITK python module" ON )
50+ mark_as_advanced (ITKPythonPackage_BUILD_PYTHON)
4951
5052 if (CMAKE_OSX_DEPLOYMENT_TARGET)
5153 list (APPEND ep_common_cmake_cache_args
@@ -89,6 +91,39 @@ if(ITKPythonPackage_SUPERBUILD)
8991 message (FATAL_ERROR "ITK_SOURCE_DIR variable is defined but corresponds to nonexistent directory" )
9092 endif ()
9193
94+ set (tbb_args )
95+ if (ITKPythonPackage_USE_TBB)
96+ ExternalProject_add(oneTBB
97+ GIT_REPOSITORY "https://github.com/oneapi-src/oneTBB.git"
98+ GIT_TAG "v2021.3.0"
99+ CMAKE_ARGS
100+ -DTBB_TEST:BOOL =OFF
101+ -DCMAKE_BUILD_TYPE:STRING =Release
102+ -DCMAKE_INSTALL_PREFIX:PATH =${CMAKE_BINARY_DIR} /../oneTBB-prefix
103+ ${ep_common_cmake_cache_args}
104+ USES_TERMINAL_DOWNLOAD 1
105+ USES_TERMINAL_UPDATE 1
106+ USES_TERMINAL_CONFIGURE 1
107+ USES_TERMINAL_BUILD 1
108+ )
109+ if (ITK_SOURCE_DIR)
110+ set (TBB_DIR "${ITK_SOURCE_DIR} /../oneTBB-prefix/lib64/cmake/TBB" )
111+ else ()
112+ set (TBB_DIR "${CMAKE_BINARY_DIR} /../oneTBB-prefix/lib64/cmake/TBB" )
113+ endif ()
114+ set (tbb_args
115+ -DModule_ITKTBB:BOOL =ON
116+ -DTBB_DIR:PATH =${TBB_DIR}
117+ )
118+ message (STATUS "SuperBuild - TBB: Enabled" )
119+ message (STATUS "SuperBuild - TBB_DIR: ${TBB_DIR} " )
120+ endif ()
121+ set (tbb_depends "" )
122+ if (ITKPythonPackage_USE_TBB)
123+ set (tbb_depends oneTBB)
124+ endif ()
125+
126+
92127 if (NOT DEFINED ITK_SOURCE_DIR)
93128
94129 set (ITK_SOURCE_DIR ${CMAKE_BINARY_DIR} /ITK)
@@ -101,6 +136,7 @@ if(ITKPythonPackage_SUPERBUILD)
101136 CONFIGURE_COMMAND ""
102137 BUILD_COMMAND ""
103138 INSTALL_COMMAND ""
139+ DEPENDS ${tbb_depends}
104140 )
105141 set (proj_status "" )
106142
@@ -234,6 +270,7 @@ if(ITKPythonPackage_SUPERBUILD)
234270 -DPython3_EXECUTABLE:FILEPATH =${Python3_EXECUTABLE}
235271 ${ep_common_cmake_cache_args}
236272 ${ep_itk_cmake_cache_args}
273+ ${tbb_args}
237274 USES_TERMINAL_DOWNLOAD 1
238275 USES_TERMINAL_UPDATE 1
239276 USES_TERMINAL_CONFIGURE 1
0 commit comments