Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37489561
en ru br
Репозитории ALT

Группа :: Development/Tools
Пакет: tbb

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

%define _unpackaged_files_terminate_build 1
%define _stripped_files_terminate_build 1
%set_verify_elf_method strict

Name: tbb
Version: 2021.10.0
Release: alt1
Summary: Threading Building Blocks
License: Apache-2.0
Group: Development/Tools
Url: https://github.com/oneapi-src/oneTBB

# https://github.com/oneapi-src/oneTBB.git

Source: %name-%version.tar

# Fedora patches


# Fix compilation on aarch64 and s390x.  See

# https://github.com/oneapi-src/oneTBB/issues/186
Patch4: tbb-2019-fetchadd4.patch

# ALT patches

# https://github.com/oneapi-src/oneTBB/pull/609
Patch1000: tbb-2021.5-upstream-i586-fix.patch

# Elbrus support

Patch2000: tbb-e2k.patch

#Fix for building on GCC13

Patch5: 0001-Fix-build-on-GCC13.patch

Requires: lib%name = %EVR

BuildRequires(pre): rpm-build-python3
BuildRequires: gcc-c++
BuildRequires: libgomp-devel
BuildRequires: python3-devel
BuildRequires: swig
BuildRequires: cmake ctest
# needed for some tests
BuildRequires: /proc

%description
Threading Building Blocks offers a rich and complete approach to
expressing parallelism in a C++ program. It is a library that helps you
leverage multi-core processors for performance and scalability without
having to be a threading expert.

%package -n lib%name
Summary: Shared libraries of Threading Building Blocks
Group: Development/C++

%description -n lib%name
Threading Building Blocks offers a rich and complete approach to
expressing parallelism in a C++ program. It is a library that helps you
leverage multi-core processors for performance and scalability without
having to be a threading expert.

This package contains shared libraries of Threading Building Blocks.

%package devel
Summary: Development libraries and headers of Threading Building Blocks
Group: Development/C++
Requires: lib%name = %EVR
Requires: %name-headers = %EVR
Provides: lib%name-devel = %EVR
Conflicts: lib%name-devel < %EVR
Obsoletes: lib%name-devel
Provides: %name-headers = %EVR
Conflicts: %name-headers < %EVR
Obsoletes: %name-headers

%description devel
Threading Building Blocks offers a rich and complete approach to
expressing parallelism in a C++ program. It is a library that helps you
leverage multi-core processors for performance and scalability without
having to be a threading expert.

This package contains development libraries for Threading Building
Blocks.

%package examples
Summary: Examples for Threading Building Blocks
Group: Development/Documentation
Requires: lib%name = %EVR
BuildArch: noarch

%description examples
Threading Building Blocks offers a rich and complete approach to
expressing parallelism in a C++ program. It is a library that helps you
leverage multi-core processors for performance and scalability without
having to be a threading expert.

This package contains examples for Threading Building Blocks.

%package -n python3-module-%name
Summary: Python 3 Threading Building Blocks module
Group: Development/Python3

%description -n python3-module-%name
Threading Building Blocks offers a rich and complete approach to
expressing parallelism in a C++ program. It is a library that helps you
leverage multi-core processors for performance and scalability without
having to be a threading expert.

This package contains python3 module for Threading Building Blocks.

%prep
%setup
%patch4 -p1
%patch5 -p1
#%%patch1000 -p1
%ifarch %e2k
%patch2000 -p1
%endif

%build
%add_optflags -D_FILE_OFFSET_BITS=64

export CFLAGS="${CFLAGS:-%optflags} -DDO_ITT_NOTIFY -DUSE_PTHREAD"
export CXXFLAGS="${CXXFLAGS:-%optflags} -DDO_ITT_NOTIFY -DUSE_PTHREAD"
export CPLUS_FLAGS="%{optflags} -DDO_ITT_NOTIFY -DUSE_PTHREAD"
export LDFLAGS="${LDFLAGS:-} -lpthread"
export RPM_LD_FLAGS="${RPM_LD_FLAGS:-} -lpthread"
%ifarch riscv64
export LDFLAGS="${LDFLAGS:-} -latomic"
export RPM_LD_FLAGS="${RPM_LD_FLAGS:-} -latomic"
%endif

%cmake \
-DCMAKE_CXX_STANDARD=14 \
-DTBB_EXAMPLES:BOOL=ON \
-DTBB_STRICT:BOOL=OFF \
-DTBB4PY_BUILD:BOOL=ON \
%nil

%cmake_build
%cmake_build -t python_build

%install
%cmakeinstall_std

rm -f %buildroot%_defaultdocdir/TBB/README.md

%ifnarch ppc64le aarch64 %arm
%check
%cmake_build -t test
%endif

%files -n lib%name
%doc LICENSE.txt
%doc README.md
%_libdir/*.so.*

%files devel
%_includedir/oneapi
%_includedir/tbb
%_libdir/cmake/TBB
%_libdir/lib*.so
%_pkgconfigdir/*.pc

%files examples
%doc examples

%files -n python3-module-%name
%python3_sitelibdir/TBB*
%python3_sitelibdir/tbb
%python3_sitelibdir/__pycache__/*

%changelog

Полный changelog можно просмотреть здесь

 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin