diff options
Diffstat (limited to 'community/binaryen/APKBUILD')
-rw-r--r-- | community/binaryen/APKBUILD | 75 |
1 files changed, 54 insertions, 21 deletions
diff --git a/community/binaryen/APKBUILD b/community/binaryen/APKBUILD index ab214fd534f..3bb8c6c5d9c 100644 --- a/community/binaryen/APKBUILD +++ b/community/binaryen/APKBUILD @@ -1,46 +1,79 @@ # Contributor: Jakub Jirutka <jakub@jirutka.cz> # Maintainer: Jakub Jirutka <jakub@jirutka.cz> pkgname=binaryen -pkgver=98 +pkgver=117 pkgrel=0 pkgdesc="Compiler infrastructure and toolchain library for WebAssembly, in C++" url="https://github.com/WebAssembly/binaryen" -arch="all !s390x !mips !mips64" +arch="all !s390x" license="Apache-2.0" -makedepends="cmake python3" -checkdepends="nodejs" +makedepends=" + clang + cmake + python3 + samurai + " +checkdepends=" + filecheck + gtest-dev + llvm-test-utils + nodejs + " subpackages="$pkgname-dev" -source="https://github.com/WebAssembly/binaryen/archive/version_$pkgver/binaryen-$pkgver.tar.gz" +source="https://github.com/WebAssembly/binaryen/archive/version_$pkgver/binaryen-$pkgver.tar.gz + use-system-gtest.patch + " builddir="$srcdir/$pkgname-version_$pkgver" -case "$CARCH" in - x86) options="!check";; # XXX: two tests fail -esac - build() { - cmake \ - -DCMAKE_BUILD_TYPE=None \ + case "$CARCH" in + arm*|aarch64|riscv64) + export CFLAGS="${CFLAGS/-fstack-clash-protection}" + export CXXFLAGS="${CFLAGS/-fstack-clash-protection}" + ;; + esac + + CC=clang \ + CXX=clang++ \ + LDFLAGS="$LDFLAGS -Wl,-z,stack-size=0x100000" \ + cmake -G Ninja -B build \ + -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_INSTALL_LIBDIR=lib \ - -DCMAKE_CXX_FLAGS="$CXXFLAGS" \ - -DCMAKE_C_FLAGS="$CFLAGS" \ -DCMAKE_VERBOSE_MAKEFILE=ON \ - -DBUILD_SHARED_LIBS=ON - make + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTS=$(want_check && echo ON || echo OFF) + cmake --build build } check() { # Tests are extremely chatty. msg 'running tests with stdout/stderr redirected into ./check.log...' - python3 check.py > check.log 2>&1 || { - echo 'tests failed, printing last 100 lines of check.log:' >&2 - tail -n 100 check.log - return 1 + python3 check.py --binaryen-bin build/bin > check.log 2>&1 || { + echo 'tests failed, printing last 1000 lines of check.log:' >&2 + tail -n 1000 check.log + + case "$CARCH" in + # XXX: Ignore test failures on 32-bit arches (broken tests) + # and riscv64. + arm* | riscv64 | x86) return 0;; + *) return 1;; + esac } } package() { - make install DESTDIR="$pkgdir" + DESTDIR="$pkgdir" cmake --install build +} + +dev() { + default_dev + + # XXX: doesn't exist on riscv64 + amove usr/bin/binaryen-unittests || true } -sha512sums="b5678cd12a125f9a57add6ce3c220cd79226bbc71b8abb71951ef2095376549da8ba362cdf99e4d1a01211db91b63c1f5314fd5df68d56bfd36315e21368f8c0 binaryen-98.tar.gz" +sha512sums=" +dba535e4595b549457113ced0230a578a8177f6cd90e2713be507611e94d76a77b7fd66e01e3db7950eeb8ebdd73a8df899ed290842a78b20707eec5a681c44e binaryen-117.tar.gz +ea332616e91c7674c471eb8f8b6352c6d342a17e2b2fd585c6c2b10de89e1be74e63fe42d908af5b2e109d043085e4300905e4efb2ec57bd275db643b22e167d use-system-gtest.patch +" |