nixpkgs/pkgs/applications/science/logic/bitwuzla/default.nix
Guillaume Girol 33afbf39f6 treewide: switch to nativeCheckInputs
checkInputs used to be added to nativeBuildInputs. Now we have
nativeCheckInputs to do that instead. Doing this treewide change allows
to keep hashes identical to before the introduction of
nativeCheckInputs.
2023-01-21 12:00:00 +00:00

70 lines
1.8 KiB
Nix

{ stdenv
, fetchFromGitHub
, lib
, python3
, cmake
, lingeling
, btor2tools
, symfpu
, gtest
, gmp
, cadical
, minisat
, picosat
, cryptominisat
, zlib
, pkg-config
# "*** internal error in 'lglib.c': watcher stack overflow" on aarch64-linux
, withLingeling ? !stdenv.hostPlatform.isAarch64
}:
stdenv.mkDerivation rec {
pname = "bitwuzla";
version = "unstable-2022-10-03";
src = fetchFromGitHub {
owner = "bitwuzla";
repo = "bitwuzla";
rev = "3bc0f9f1aca04afabe1aff53dd0937924618b2ad";
hash = "sha256-UXZERl7Nedwex/oUrcf6/GkDSgOQ537WDYm117RfvWo=";
};
nativeBuildInputs = [ cmake pkg-config ];
buildInputs = [
cadical
cryptominisat
picosat
minisat
btor2tools
symfpu
gmp
zlib
] ++ lib.optional withLingeling lingeling;
cmakeFlags = [
"-DBUILD_SHARED_LIBS=ON"
"-DPicoSAT_INCLUDE_DIR=${lib.getDev picosat}/include/picosat"
"-DBtor2Tools_INCLUDE_DIR=${lib.getDev btor2tools}/include/btor2parser"
"-DBtor2Tools_LIBRARIES=${lib.getLib btor2tools}/lib/libbtor2parser${stdenv.hostPlatform.extensions.sharedLibrary}"
] ++ lib.optional doCheck "-DTESTING=YES";
nativeCheckInputs = [ python3 gtest ];
# two tests fail on darwin and 3 on aarch64-linux
doCheck = stdenv.hostPlatform.isLinux && (!stdenv.hostPlatform.isAarch64);
preCheck = let
var = if stdenv.isDarwin then "DYLD_LIBRARY_PATH" else "LD_LIBRARY_PATH";
in
''
export ${var}=$(readlink -f lib)
patchShebangs ..
'';
meta = with lib; {
description = "A SMT solver for fixed-size bit-vectors, floating-point arithmetic, arrays, and uninterpreted functions";
homepage = "https://bitwuzla.github.io";
license = licenses.mit;
platforms = platforms.unix;
maintainers = with maintainers; [ symphorien ];
};
}