archrelease: copy trunk to community-x86_64
[ArchLinux/community.git] / zydis / trunk / PKGBUILD
blob9156f8fc956777bf62a3503115d65742a72a45fd
1 # Maintainer: George Rawlinson <grawlinson@archlinux.org>
2 # Contributor: Thibaut PĂ©rami <thibaut.perami@cl.cam.ac.uk>
4 pkgname=zydis
5 pkgver=4.0.0
6 pkgrel=3
7 pkgdesc='Fast and lightweight x86/x86-64 disassembler and code generation library'
8 arch=('x86_64')
9 url='https://zydis.re'
10 license=('MIT')
11 depends=('gcc-libs' 'zycore-c')
12 makedepends=('git' 'cmake' 'ruby-ronn-ng' 'doxygen')
13 checkdepends=('python')
14 provides=('libZydis.so')
15 _commit='1ba75aeefae37094c7be8eba07ff81d4fe0f1f20'
16 source=("git+https://github.com/zyantific/zydis.git#commit=$_commit")
17 b2sums=('SKIP')
19 pkgver() {
20   cd "$pkgname"
22   git describe --tags | sed -e 's/^v//' -e 's/-/./g'
25 build() {
26   # https://archlinux.org/todo/lto-fat-objects/
27   export CFLAGS+=" -ffat-lto-objects"
29   # https://github.com/zyantific/zydis#-fpic-for-shared-library-builds
30   cmake \
31     -S "$pkgname" \
32     -B build \
33     -W no-dev \
34     -D CMAKE_BUILD_TYPE='None' \
35     -D CMAKE_INSTALL_PREFIX=/usr \
36     -D CMAKE_POSITION_INDEPENDENT_CODE=ON \
37     -D ZYDIS_BUILD_SHARED_LIB=ON \
38     -D ZYAN_SYSTEM_ZYCORE=ON \
39     -D ZYDIS_BUILD_MAN=ON
41   cmake --build build
44 check() {
45   # test suite extracted from .github/workflows/main.yml
46   cd "$pkgname/tests"
48   # regression tests (decoder)
49   python regression.py test "$srcdir/build/ZydisInfo"
51   # regression tests (encoder)
52   python regression_encoder.py \
53     "$srcdir/build/ZydisFuzzReEncoding" \
54     "$srcdir/build/ZydisFuzzEncoder" \
55     "$srcdir/build/ZydisTestEncoderAbsolute"
58 package() {
59   DESTDIR="$pkgdir" cmake --install build
61   cd "$pkgname"
63   # documentation
64   install -vDm644 -t "$pkgdir/usr/share/doc/Zydis" README.md
65   cp -vr examples "$pkgdir/usr/share/doc/Zydis"
67   # move man pages to correct directory
68   install -vd "$pkgdir/usr/share/man/man1"
69   mv "$pkgdir/usr/share/man/"*.1 "$pkgdir/usr/share/man/man1"
71   # license
72   install -vDm644 -t "$pkgdir/usr/share/licenses/$pkgname" LICENSE