Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update TBB to 2021.2.0 and use cmake to build #6792

Merged
merged 2 commits into from
May 4, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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"/>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You might need to change this to lib64.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nevermind. I see you set CMAKE_INSTALL_LIBDIR=lib

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we are having this policy of deliberately keeping the lib instead of lib64

<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
32 changes: 19 additions & 13 deletions tbb.spec
Original file line number Diff line number Diff line change
@@ -1,25 +1,31 @@
### RPM external tbb 2020_U3
### RPM external tbb v2021.2.0

%define tag %{realversion}
%define branch tbb_2020
%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
Requires: hwloc
BuildRequires: cmake

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

%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 \
-DCMAKE_HWLOC_2_INCLUDE_PATH=$HWLOC_ROOT/include \
-DCMAKE_HWLOC_2_LIBRARY_PATH=$HWLOC_ROOT/lib/libhwloc.so \
-DTBB_CPF=ON

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