projects/aports·blob master · refs

117 lines · 2.6 KiB

1# Contributor: Leo <[email protected]>
2# Maintainer: Natanael Copa <[email protected]>
3pkgname=openmp
4pkgver=18.1.8
5pkgrel=3
6_llvmver=${pkgver%%.*}
7pkgdesc="LLVM OpenMP Runtime Library"
8url="https://openmp.llvm.org/"
9# armhf: doesn't match arm baseline
10arch="all !armhf"
11license="Apache-2.0"
12depends_dev="
13 $pkgname=$pkgver-r$pkgrel
14 "
15makedepends="
16 clang$_llvmver
17 cmake
18 elfutils-dev
19 libffi-dev
20 llvm$_llvmver-dev
21 llvm$_llvmver-gtest
22 llvm$_llvmver-static
23 perl
24 samurai
25 "
26checkdepends="llvm$_llvmver-test-utils"
27subpackages="$pkgname-dev"
28source="https://github.com/llvm/llvm-project/releases/download/llvmorg-${pkgver//_/-}/openmp-${pkgver//_/}.src.tar.xz
29 https://github.com/llvm/llvm-project/releases/download/llvmorg-${pkgver//_/-}/cmake-${pkgver//_/}.src.tar.xz
30 "
31builddir="$srcdir/$pkgname-${pkgver//_/}.src"
32options="!check" # todo
33
34case "$CARCH" in
35aarch64|ppc64le|x86_64)
36 depends_dev="
37 $depends_dev
38 $pkgname-bitcode=$pkgver-r$pkgrel
39 "
40 subpackages="
41 $subpackages
42 $pkgname-bitcode
43 libomptarget
44 libomptarget-rtl-cuda
45 libomptarget-rtl-amdgpu
46 libomptarget-rtl
47 "
48 ;;
49riscv64|loongarch64|s390x)
50 depends_dev="
51 $depends_dev
52 $pkgname-bitcode=$pkgver-r$pkgrel
53 "
54 subpackages="
55 $subpackages
56 $pkgname-bitcode
57 libomptarget
58 "
59esac
60
61prepare() {
62 default_prepare
63 mv "$srcdir"/cmake-${pkgver//_/}.src "$srcdir"/cmake
64}
65
66build() {
67 if [ "$CBUILD" != "$CHOST" ]; then
68 CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
69 fi
70 CC=clang-$_llvmver \
71 CXX=clang++-$_llvmver \
72 cmake -B build -G Ninja \
73 -DCMAKE_BUILD_TYPE=Release \
74 -DCMAKE_INSTALL_PREFIX=/usr \
75 -DLIBOMP_INSTALL_ALIASES=OFF \
76 -DCLANG_TOOL=/usr/bin/clang-$_llvmver \
77 -DLINK_TOOL=/usr/bin/llvm$_llvmver-link \
78 -DOPT_TOOL=/usr/bin/opt$_llvmver \
79 -DPACKAGER_TOOL=/usr/lib/llvm$_llvmver/bin/clang-offload-packager \
80 -DOPENMP_LLVM_TOOLS_DIR=/usr/lib/llvm$_llvmver/bin \
81 $CMAKE_CROSSOPTS
82 cmake --build build
83}
84
85check() {
86 cmake --build build --target check-openmp
87}
88
89package() {
90 DESTDIR="$pkgdir" cmake --install build
91 rm -f "$pkgdir"/usr/lib/libarcher_static.a
92}
93
94libomptarget() {
95 amove usr/lib/libomptarget.so.*
96}
97
98rtl() {
99 amove usr/lib/libomptarget.rtl.*.so.*
100}
101
102amdgpu() {
103 amove usr/lib/libomptarget.rtl.amdgpu.so.*
104}
105
106cuda() {
107 amove usr/lib/libomptarget.rtl.cuda.so.*
108}
109
110bitcode() {
111 amove usr/lib/libomptarget*.bc
112}
113
114sha512sums="
1157c2ca736524fb741112be247ac6be39cfe1dc92381c5e2997d97044ab9705c224ae5eabcf43b59cdec9a715a14227c6fb02cb2d1829ebc47b82d3af6e4d197d3 openmp-18.1.8.src.tar.xz
116e02243b491f9e688db28d7b53270fcf87debf09d3c95b136a7c7b96e26890de68712c60a1e85f5a448a95ad8c81f2d8ae77047780822443bbe39f1a9e6211007 cmake-18.1.8.src.tar.xz
117"