Skip to content

Commit

Permalink
Update TBB to 2021.2.0 and use cmake to build
Browse files Browse the repository at this point in the history
  • Loading branch information
mrodozov committed Apr 7, 2021
1 parent 62b7fe6 commit e555977
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 17 deletions.
15 changes: 15 additions & 0 deletions tbb-2021.1.1-cmake_policy-CMP0074.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f71eff1..d2370ee 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -27,6 +27,10 @@ elseif (DEFINED CMAKE_MSVC_RUNTIME_LIBRARY)
message(FATAL_ERROR "CMAKE_MSVC_RUNTIME_LIBRARY was defined while policy CMP0091 is not available. Use CMake 3.15 or newer.")
endif()

+if (POLICY CMP0074)
+ cmake_policy(SET CMP0074 NEW)
+endif()
+
if (TBB_WINDOWS_DRIVER AND (NOT ("${CMAKE_MSVC_RUNTIME_LIBRARY}" STREQUAL MultiThreaded OR "${CMAKE_MSVC_RUNTIME_LIBRARY}" STREQUAL MultiThreadedDebug)))
message(FATAL_ERROR "Enabled TBB_WINDOWS_DRIVER requires CMAKE_MSVC_RUNTIME_LIBRARY to be set to MultiThreaded or MultiThreadedDebug.")
endif()
20 changes: 17 additions & 3 deletions tbb-toolfile.spec
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
### RPM external tbb-toolfile 1.0
### RPM external tbb-toolfile 2.0
Requires: tbb
%prep

Expand All @@ -13,8 +13,8 @@ cat << \EOF_TOOLFILE >%i/etc/scram.d/tbb.xml
<lib name="tbb"/>
<client>
<environment name="TBB_BASE" default="@TOOL_ROOT@"/>
<environment name="LIBDIR" default="$TBB_BASE/lib"/>
<environment name="INCLUDE" default="$TBB_BASE/include"/>
<environment name="LIBDIR" default="$TBB_BASE/lib"/>
<environment name="INCLUDE" default="$TBB_BASE/include"/>
</client>
<runtime name="ROOT_INCLUDE_PATH" value="$INCLUDE" type="path"/>
<use name="root_cxxdefaults"/>
Expand All @@ -25,6 +25,20 @@ cat << \EOF_TOOLFILE >%i/etc/scram.d/tbb.xml
</tool>
EOF_TOOLFILE

cat << \EOF_TOOLFILE >%i/etc/scram.d/tbbbind.xml
<tool name="tbbbind" version="@TOOL_VERSION@">
<info url="http://threadingbuildingblocks.org"/>
<use name="tbb"/>
<lib name="tbbbind_2_0"/>
<client>
<environment name="TBBBIND_BASE" default="@TOOL_ROOT@"/>
<environment name="LIBDIR" default="$TBBBIND_BASE/lib"/>
<environment name="INCLUDE" default="$TBBBIND_BASE/include"/>
</client>
<flags SYSTEM_INCLUDE="1"/>
</tool>
EOF_TOOLFILE

export GCC_GLIBCXX_VERSION=$(gcc -dumpversion | tr '.' '0')

## IMPORT scram-tools-post
38 changes: 24 additions & 14 deletions tbb.spec
Original file line number Diff line number Diff line change
@@ -1,25 +1,35 @@
### RPM external tbb 2020_U3
### RPM external tbb v2021.2.0

%define tag %{realversion}
%define branch tbb_2020
%define tag %{realversion}
%define branch onetbb_2021
%define github_user oneapi-src
Source: git+https://github.com/%{github_user}/oneTBB.git?obj=%{branch}/%{tag}&export=%{n}-%{realversion}&output=/%{n}-%{realversion}-%{tag}.tgz
%define github_repo oneTBB
Source: git+https://github.com/%{github_user}/%{github_repo}.git?obj=%{branch}/%{tag}&export=%{n}-%{realversion}&output=/%{n}-%{branch}-%{tag}.tgz
# Patch tbb v2021.1.1 CMake file to support $HWLOC_ROOT
# not needed in the tbb master branch
Patch: tbb-2021.1.1-cmake_policy-CMP0074
Requires: hwloc
BuildRequires: cmake

%prep
%setup -n %{n}-%{realversion}
%patch -p1

%build
rm -rf %{_builddir}/build
mkdir %{_builddir}/build

make %{makeprocesses} stdver=c++17 tbb_cpf=1
cd %{_builddir}/build
cmake ../%{n}-%{realversion} \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_INSTALL_PREFIX=%{i} \
-DCMAKE_INSTALL_LIBDIR=lib \
-DTBB_CPF=ON \
-DCMAKE_CXX_FLAGS=-Wno-deprecated-copy \
-DHWLOC_ROOT=$HWLOC_ROOT

make %{makeprocesses}

%install
install -d %i/lib
cp -r include %i/include
case %cmsplatf in
osx*) SONAME=dylib ;;
*) SONAME=so ;;
esac
find build -name "*.$SONAME*" -exec cp {} %i/lib \;
ln -s libtbb_preview.${SONAME} %{i}/lib/libtbb.${SONAME}
cmake -DINSTALL_DIR=%{i}/cmake/TBB -DSYSTEM_NAME=Linux -DINC_PATH=%{i}/include -DLIB_PATH=%{i}/lib -P cmake/tbb_config_installer.cmake
cd %{_builddir}/build
make install

0 comments on commit e555977

Please sign in to comment.