1{ stdenv, lib, fetchFromGitHub, fetchpatch, cmake, boost, tbb
2, gmp, llvm, clang, sqlite, python3
3, ocamlPackages, mpfr, ppl, doxygen, graphviz
4}:
5
6let
7 python = python3.withPackages (ps: with ps; [
8 pygments
9 ]);
10in
11
12stdenv.mkDerivation rec {
13 pname = "ikos";
14 version = "3.1";
15
16 src = fetchFromGitHub {
17 owner = "NASA-SW-VnV";
18 repo = "ikos";
19 rev = "v${version}";
20 hash = "sha256-scaFkUhCkIi41iR6CGPbEndzXkgqTKMb3PDNvhgVbCE=";
21 };
22
23 patches = fetchpatch {
24 url = "https://github.com/NASA-SW-VnV/ikos/commit/2e647432427b3f0dbb639e0371d976ab6406f290.patch";
25 hash = "sha256-ffzjlqEp4qp76Kwl5zpyQlg/xUMt8aLDSSP4XA4ndS8=";
26 };
27
28 nativeBuildInputs = [ cmake ];
29 buildInputs = [ boost tbb gmp clang llvm sqlite python
30 ocamlPackages.apron mpfr ppl doxygen graphviz ];
31
32 cmakeFlags = [ "-DAPRON_ROOT=${ocamlPackages.apron}" ];
33
34 postBuild = "make doc";
35
36 meta = with lib; {
37 homepage = "https://github.com/NASA-SW-VnV/ikos";
38 description = "Static analyzer for C/C++ based on the theory of Abstract Interpretation";
39 license = licenses.nasa13;
40 maintainers = with maintainers; [ atnnn ];
41 };
42}