| 1 | # Contributor: Magnus Sandin <[email protected]> |
| 2 | # Maintainer: Magnus Sandin <[email protected]> |
| 3 | pkgname=libspecbleach |
| 4 | pkgver=0.4.1 |
| 5 | pkgrel=0 |
| 6 | pkgdesc="Standalone library based on the algorithms used in noise-repellent." |
| 7 | url="https://github.com/lucianodato/libspecbleach" |
| 8 | arch="all" |
| 9 | license="LGPL-2.1-or-later AND BSD-3-Clause" |
| 10 | depends_dev="$pkgname=$pkgver-r$pkgrel" |
| 11 | makedepends=" |
| 12 | cmake |
| 13 | samurai |
| 14 | " |
| 15 | subpackages="$pkgname-dev $pkgname-extras" |
| 16 | source=" |
| 17 | libspecbleach-$pkgver.tar.gz::https://github.com/lucianodato/libspecbleach/archive/refs/tags/v$pkgver.tar.gz |
| 18 | x86_avx.patch |
| 19 | " |
| 20 | |
| 21 | build() { |
| 22 | # The vendored pffft's AltiVec path is incomplete: pffft_priv_impl.h |
| 23 | # uses VLOAD_ALIGNED, VREV_S and VREV_C, which pf_altivec_float.h |
| 24 | # never defines. Fall back to the scalar implementation there. |
| 25 | case "$CARCH" in |
| 26 | ppc64le) |
| 27 | export CFLAGS="$CFLAGS -DPFFFT_SIMD_DISABLE" |
| 28 | ;; |
| 29 | esac |
| 30 | |
| 31 | cmake -B build -G Ninja \ |
| 32 | -DCMAKE_BUILD_TYPE=Release \ |
| 33 | -DCMAKE_INSTALL_PREFIX=/usr \ |
| 34 | -DCMAKE_INSTALL_LIBDIR=lib \ |
| 35 | -DBUILD_SHARED_LIBS=ON \ |
| 36 | -DSPECBLEACH_BUILD_EXTRAS=ON \ |
| 37 | -DENABLE_EXAMPLES=OFF \ |
| 38 | -DENABLE_TESTS="$(want_check && echo ON || echo OFF)" |
| 39 | |
| 40 | cmake --build build --config Release --parallel |
| 41 | } |
| 42 | |
| 43 | check() { |
| 44 | ctest --test-dir build --output-on-failure |
| 45 | } |
| 46 | |
| 47 | package() { |
| 48 | DESTDIR="$pkgdir" cmake --install build |
| 49 | } |
| 50 | |
| 51 | extras() { |
| 52 | depends="" |
| 53 | pkgdesc="$pkgdesc (extras)" |
| 54 | |
| 55 | amove usr/lib/libspecbleach_extras.so.* |
| 56 | } |
| 57 | |
| 58 | sha512sums=" |
| 59 | 7a2143ef33234512e23931532850940185444a3fa3c703fb037a488da26fd9176ceda76102f6ae79da157da91378b41394c389ca8c16fd19dd567b4f1905a257 libspecbleach-0.4.1.tar.gz |
| 60 | e8789d3c0f800471e98ad5a9d9c45d42d0de852229aec8b00ea244c455df6bf6f11c5b52e1a64a9b24bd5067abae557015ca9637633e18c6f572d8a6ca91456d x86_avx.patch |
| 61 | " |