2023-08-04 22:07:22 +00:00
|
|
|
{ stdenv, lib, fetchFromGitHub, fetchpatch, cmake, boost, tbb
|
2020-04-24 23:36:52 +00:00
|
|
|
, gmp, llvm, clang, sqlite, python3
|
|
|
|
, ocamlPackages, mpfr, ppl, doxygen, graphviz
|
|
|
|
}:
|
|
|
|
|
|
|
|
let
|
|
|
|
python = python3.withPackages (ps: with ps; [
|
|
|
|
pygments
|
|
|
|
]);
|
|
|
|
in
|
|
|
|
|
|
|
|
stdenv.mkDerivation rec {
|
2022-02-10 20:34:41 +00:00
|
|
|
pname = "ikos";
|
2023-08-04 22:07:22 +00:00
|
|
|
version = "3.1";
|
2020-04-24 23:36:52 +00:00
|
|
|
|
|
|
|
src = fetchFromGitHub {
|
|
|
|
owner = "NASA-SW-VnV";
|
2022-02-10 20:34:41 +00:00
|
|
|
repo = "ikos";
|
2020-04-24 23:36:52 +00:00
|
|
|
rev = "v${version}";
|
2023-08-04 22:07:22 +00:00
|
|
|
hash = "sha256-scaFkUhCkIi41iR6CGPbEndzXkgqTKMb3PDNvhgVbCE=";
|
|
|
|
};
|
|
|
|
|
2024-01-25 14:12:00 +00:00
|
|
|
patches = [ (fetchpatch {
|
2023-08-04 22:07:22 +00:00
|
|
|
url = "https://github.com/NASA-SW-VnV/ikos/commit/2e647432427b3f0dbb639e0371d976ab6406f290.patch";
|
|
|
|
hash = "sha256-ffzjlqEp4qp76Kwl5zpyQlg/xUMt8aLDSSP4XA4ndS8=";
|
2024-01-25 14:12:00 +00:00
|
|
|
})
|
|
|
|
# Fix build with GCC 13
|
|
|
|
# https://github.com/NASA-SW-VnV/ikos/pull/262
|
|
|
|
(fetchpatch {
|
|
|
|
name = "gcc-13.patch";
|
|
|
|
url = "https://github.com/NASA-SW-VnV/ikos/commit/73c816641fb9780f0d3b5e448510363a3cf21ce2.patch";
|
|
|
|
hash = "sha256-bkeSAtxrL+z+6QNiGOWSg7kN8XiZqMxlJiu5Dquhca0=";
|
|
|
|
})
|
|
|
|
];
|
2020-04-24 23:36:52 +00:00
|
|
|
|
2021-01-15 22:18:51 +00:00
|
|
|
nativeBuildInputs = [ cmake ];
|
|
|
|
buildInputs = [ boost tbb gmp clang llvm sqlite python
|
2020-04-24 23:36:52 +00:00
|
|
|
ocamlPackages.apron mpfr ppl doxygen graphviz ];
|
|
|
|
|
|
|
|
cmakeFlags = [ "-DAPRON_ROOT=${ocamlPackages.apron}" ];
|
|
|
|
|
|
|
|
postBuild = "make doc";
|
|
|
|
|
|
|
|
meta = with lib; {
|
|
|
|
homepage = "https://github.com/NASA-SW-VnV/ikos";
|
|
|
|
description = "Static analyzer for C/C++ based on the theory of Abstract Interpretation";
|
|
|
|
license = licenses.nasa13;
|
|
|
|
maintainers = with maintainers; [ atnnn ];
|
|
|
|
};
|
|
|
|
}
|