2023-11-03 07:45:19 +00:00

119 lines
2.6 KiB
Plaintext

# Contributor: Leo <thinkabit.ukim@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=openmp
pkgver=17.0.4
pkgrel=0
_llvmver=${pkgver%%.*}
pkgdesc="LLVM OpenMP Runtime Library"
url="https://openmp.llvm.org/"
# s390x: LIBOMP_ARCH = UnknownArchitecture
# armhf: doesn't match arm baseline
arch="all !armhf !s390x"
license="Apache-2.0"
depends_dev="
$pkgname=$pkgver-r$pkgrel
"
makedepends="
clang
cmake
elfutils-dev
libffi-dev
llvm$_llvmver-dev
llvm$_llvmver-gtest
llvm$_llvmver-static
perl
samurai
"
checkdepends="llvm$_llvmver-test-utils"
subpackages="$pkgname-dev"
source="https://github.com/llvm/llvm-project/releases/download/llvmorg-${pkgver//_/-}/openmp-${pkgver//_/}.src.tar.xz
https://github.com/llvm/llvm-project/releases/download/llvmorg-${pkgver//_/-}/cmake-${pkgver//_/}.src.tar.xz
"
builddir="$srcdir/$pkgname-${pkgver//_/}.src"
options="!check" # todo
case "$CARCH" in
aarch64|ppc64le|x86_64)
depends_dev="
$depends_dev
$pkgname-bitcode=$pkgver-r$pkgrel
"
subpackages="
$subpackages
$pkgname-bitcode
libomptarget
libomptarget-rtl-cuda
libomptarget-rtl-amdgpu
libomptarget-rtl
"
;;
riscv64)
depends_dev="
$depends_dev
$pkgname-bitcode=$pkgver-r$pkgrel
"
subpackages="
$subpackages
$pkgname-bitcode
libomptarget
"
esac
prepare() {
default_prepare
mv "$srcdir"/cmake-${pkgver//_/}.src "$srcdir"/cmake
}
build() {
if [ "$CBUILD" != "$CHOST" ]; then
CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
fi
CC=clang \
CXX=clang++ \
cmake -B build -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
-DLIBOMP_INSTALL_ALIASES=OFF \
-DCLANG_TOOL=/usr/bin/clang \
-DLINK_TOOL=/usr/bin/llvm-link \
-DOPT_TOOL=/usr/bin/opt \
-DPACKAGER_TOOL=/usr/bin/clang-offload-packager \
-DOPENMP_LLVM_TOOLS_DIR=/usr/lib/llvm$_llvmver/bin \
$CMAKE_CROSSOPTS
cmake --build build
}
check() {
cmake --build build --target check-openmp
}
package() {
DESTDIR="$pkgdir" cmake --install build
rm -f "$pkgdir"/usr/lib/libarcher_static.a
}
libomptarget() {
amove usr/lib/libomptarget.so.*
}
rtl() {
amove usr/lib/libomptarget.rtl.*.so.*
}
amdgpu() {
amove usr/lib/libomptarget.rtl.amdgpu.so.*
}
cuda() {
amove usr/lib/libomptarget.rtl.cuda.so.*
}
bitcode() {
amove usr/lib/libomptarget*.bc
}
sha512sums="
9c73bd5f6e09a2132afa2e3152d7506517bbd7fbf4294b30574bf42111f088ad8a32ff70c893d6e3211ceda735534b08cd60b3334f08150af8ba6b1ee61321b5 openmp-17.0.4.src.tar.xz
bddfa97e6d1866a571d036490321099593063be33c38be1c6d117ea26d311876526d13760dc63155d3a7ea460f9c3de6da9911bdebeb286964ccdab377085a28 cmake-17.0.4.src.tar.xz
"