# Maintainer: Kyle Keen # cms2 had a manpage, where did it go? # need to hack up the pythonpath and get the tests to run pkgname=cryptominisat5 pkgver=5.8.0 pkgrel=10 pkgdesc="A modern, multi-threaded, feature-rich, simplifying SAT solver" arch=('x86_64') #url="https://www.msoos.org/2016/07/cryptominisat-5-0-0-released/" url="https://github.com/msoos/cryptominisat/" license=('MIT') depends=('zlib' 'gcc-libs' 'boost-libs' 'sqlite' 'm4ri') makedepends=('python' 'boost' 'cmake' 'vim' 'help2man') # vim for xxd optdepends=('python: python module') source=("cms5-$pkgver.tgz::https://github.com/msoos/cryptominisat/archive/$pkgver.tar.gz") md5sums=('05bdde77aa78c983849437e93b39bd6a') # many fancy features requiring makedeps # python3, m4ri, valgrind prepare() { cd cryptominisat-$pkgver sed -i 's/\(CRYPTOMINISAT4_EXECUTABLE\).*/\1 cryptominisat5\)/' *.cmake.in } build() { cd cryptominisat-$pkgver mkdir -p build cd build # options to play with: # -DUSE_ZLIB -DNOM4RI -DNOBOSPHORUS -DNOVALGRIND -DNOBREAKID -DENABLE_PYTHON_INTERFACE # -DEMSCRIPTEN -DFEEDBACKFUZZ -DLARGEMEM -DEXTFEAT -DSANITIZE -DMIT -DENABLE_ASSERTIONS # -DUSE_GAUSS -DONLY_SIMPLE -DENABLE_TESTING -DCOVERAGE -DIPASIR -DMANPAGE # -DSTATS -DWEIGHTED_SAMPLING -DFINAL_PREDICTOR -DFINAL_PREDICTOR_BRANCH cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr .. make cd pycryptosat python3 setup.py build } check() { cd "$srcdir/cryptominisat-$pkgver/build/pycryptosat" _TESTPATH="$PYTHONPATH:$PWD" # smoke test ln -sf pycryptosat.so libcryptominisat5.so.5.6 PYTHONPATH=$_TESTPATH python3 -c "from pycryptosat import Solver" # skip all the cmake stuff PYTHONPATH=$_TESTPATH python3 tests/test_pycryptosat.py } package() { cd cryptominisat-$pkgver install -Dm644 LICENSE.txt "$pkgdir/usr/share/licenses/$pkgname/LICENSE" cd build make install DESTDIR="$pkgdir" # todo, tweak the build tools to respect DESTDIR cd pycryptosat python3 setup.py install --record files.txt --root="${pkgdir}" }