diff options
Diffstat (limited to 'community/binaryen/APKBUILD')
-rw-r--r-- | community/binaryen/APKBUILD | 89 |
1 files changed, 58 insertions, 31 deletions
diff --git a/community/binaryen/APKBUILD b/community/binaryen/APKBUILD index 8fd9abb6e37..3bb8c6c5d9c 100644 --- a/community/binaryen/APKBUILD +++ b/community/binaryen/APKBUILD @@ -1,52 +1,79 @@ # Contributor: Jakub Jirutka <jakub@jirutka.cz> # Maintainer: Jakub Jirutka <jakub@jirutka.cz> pkgname=binaryen -pkgver=40 -pkgrel=1 +pkgver=117 +pkgrel=0 pkgdesc="Compiler infrastructure and toolchain library for WebAssembly, in C++" -options="!check" # Tests require python2 url="https://github.com/WebAssembly/binaryen" -arch="all !s390x !mips !mips64" +arch="all !s390x" license="Apache-2.0" -makedepends="cmake" -checkdepends="nodejs" # python2" +makedepends=" + clang + cmake + python3 + samurai + " +checkdepends=" + filecheck + gtest-dev + llvm-test-utils + nodejs + " subpackages="$pkgname-dev" -source="binaryen-$pkgver.tar.gz::https://github.com/WebAssembly/binaryen/archive/version_$pkgver.tar.gz - link-dynamically.patch - ignore-type-limits-error.patch - fix-gcc8-wcatch-value.patch - gcc-march-aarch64.patch" +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() { - # waterfall requires additional dependency - # gcc-tests fail, dunno why - python2 check.py --no-test-waterfall --no-run-gcc-tests + # Tests are extremely chatty. + msg 'running tests with stdout/stderr redirected into ./check.log...' + 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" - rm "$pkgdir"/usr/share/binaryen/binaryen.js + DESTDIR="$pkgdir" cmake --install build +} + +dev() { + default_dev + + # XXX: doesn't exist on riscv64 + amove usr/bin/binaryen-unittests || true } -sha512sums="89aa73c1686fb6d54c91990acbc7cd6c1bc7e6da57731bf009fe507c955c98c91582b5b9924c3c3f6a2d36d55ae73f1be79911cdce93dfd74954bca46861c8ad binaryen-40.tar.gz -9729655be0d952385de959bf7dd84a075b192fe4b221bb5c23e562a83a2bf9202a07536ad393157b23e0447f28bdd16283f64a63588ca42597bb59e9551219c8 link-dynamically.patch -3b95a197cd8805dfa714cf9f31adc1437b6d29bd4082f752c16d98c40cd024b110c02a412285c78251cb5d0b3080c0f9e4d45d8dd0166c71b9462b1610191ab8 ignore-type-limits-error.patch -f937a9f9f7f2cab97aa15ade3a800b8924755b27ae4e9e8951ee97dc79d54c95db28d3c71b32c2ed0b5711d6e1884c33cc307564abe759f6ea3c23db60d433a1 fix-gcc8-wcatch-value.patch -43db7456ce3b9a6239b24caa9fc9cb1a59975e742fa74ff6bfcdadbbb453afee62842aaa973596d78294704c7d76cb73eb7703f1d66e40b1bb164e86e5da5914 gcc-march-aarch64.patch" +sha512sums=" +dba535e4595b549457113ced0230a578a8177f6cd90e2713be507611e94d76a77b7fd66e01e3db7950eeb8ebdd73a8df899ed290842a78b20707eec5a681c44e binaryen-117.tar.gz +ea332616e91c7674c471eb8f8b6352c6d342a17e2b2fd585c6c2b10de89e1be74e63fe42d908af5b2e109d043085e4300905e4efb2ec57bd275db643b22e167d use-system-gtest.patch +" |