summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD109
1 files changed, 109 insertions, 0 deletions
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..6b77d8561d75
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,109 @@
+# Maintainer: Manuel Wiesinger <m {you know what belongs here} mmap {and here} at>
+
+pkgbase=bitwuzla
+pkgname=("${pkgbase}" "${pkgbase}-doc")
+pkgver=0.4.0
+pkgrel=1
+pkgdesc='SMT solver for the theories of fixed-size bit-vectors, floating-point arithmetic, arrays and uninterpreted functions and their combinations'
+arch=('x86_64')
+url='https://bitwuzla.github.io'
+license=('MIT')
+source=("$pkgname-$pkgver.tar.gz::https://github.com/bitwuzla/bitwuzla/archive/refs/tags/${pkgver}.tar.gz"
+ "0001-Use-installed-libraries.patch"
+ "0002-Skip-Test-based-on-timeout.patch"
+ "0003-Do-not-require-git.patch" # git is only used to pull not installed dependencies
+ )
+depends=('gcc-libs' 'glibc' 'gmp>=6.1' 'kissat')
+makedepends=(
+ 'cadical>=1.5.0'
+ 'cmake'
+ 'cython'
+ 'doxygen'
+ 'meson>=0.64'
+ 'ninja'
+ 'python-breathe'
+ 'python-sphinx'
+ 'python-sphinx-tabs'
+ 'python-sphinx_rtd_theme'
+ 'python-sphinxcontrib-bibtex'
+ 'python>=3.7'
+ 'python-sphinx'
+ 'symfpu-cvc5'
+)
+checkdepends=('gtest' 'python-pytest')
+optdepends=(
+ 'cryptominisat5: Support for the CryptoMiniSat SAT solver'
+ 'python>=3.7: Python bindings'
+)
+provides=(
+ 'bitwuzla.cpython-311-x86_64-linux-gnu.so'
+ 'libbitwuzlabv.so'
+ 'libbitwuzlabb.so'
+ 'libbitwuzlals.so'
+ 'libbitwuzla.so')
+b2sums=('135ed8dbe8ada22ca36f872ccc062622bfdfa87592cfcad596f9c1c0c92c99a486a7ff52707fe7dba33531405cd6c84a20a3f546d3614585721f6b7468dc2894'
+ '0ebea6754d4fc270c268d4088af9bcb93596fe5ec7b1065f83d39e5c56eef93d567592443ec0a460a34bf5829b5b54f2c9971644f6fbbebbf9c43a1b440ac54d'
+ '7728ab77cb234b4427e7cf493817a24bf97440304efb4fc4300125ec470a0bf15430b4416d3c5fdea51dc91441640d05995ed4a08d4c628f97f4d4dc08538d7e'
+ '7c80c06aec86c5c75a72786cfafa03d703950efa5639726abec5466b82928ae231eed75bff29d056d6e47bf2e4ab1ce4f9634fd96f9454d0b92d90c30fd26f37')
+options=('!lto')
+
+prepare() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch --forward --strip=1 --input=../0001-Use-installed-libraries.patch
+ patch --forward --strip=1 --input=../0002-Skip-Test-based-on-timeout.patch
+ patch --forward --strip=1 --input=../0003-Do-not-require-git.patch
+}
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure.py --prefix /usr --shared --python --testing --docs --kissat
+
+ cd build
+ ninja
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ meson test -C build
+}
+
+package_bitwuzla() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+
+ install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
+ install -Dm644 CONTRIBUTING.md "${pkgdir/}usr/share/doc/${pkgname}/CONTRIBUTING.md"
+
+ install -Dm644 NEWS.md "${pkgdir}/usr/share/doc/${pkgname}/NEWS.md"
+
+ cd build
+
+ DESTDIR="${pkgdir}" ninja install
+}
+
+package_bitwuzla-doc() {
+ pkgdesc="Documentation for the Bitwuzla SMT solver"
+ arch=('any')
+ depends=()
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+
+ install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
+ install -Dm644 CONTRIBUTING.md "${pkgdir}/usr/share/doc/${pkgname}/CONTRIBUTING.md"
+
+ cd build/docs
+
+ # Do not copy documentation source files
+ find . \
+ -not -path "./.*" \
+ -not -path "./_sources*" \
+ -not -path "./conf.py" \
+ -not -path "./cli_usage.txt" \
+ -not -path "./c/xml*" \
+ -not -path "./c/Doxyfile" \
+ -not -path "./cpp/xml*" \
+ -not -path "./cpp/Doxyfile" \
+ -exec install -Dm644 {} "${pkgdir}/usr/share/doc/${pkgbase}/html/{}" \;
+
+ install -Dm644 cli_usage.txt "${pkgdir}/usr/share/doc/${pkgbase}/cli_usage.txt"
+}