diff --git a/pkgs/development/ocaml-modules/mopsa/default.nix b/pkgs/development/ocaml-modules/mopsa/default.nix new file mode 100644 index 000000000000..8f084ef9618d --- /dev/null +++ b/pkgs/development/ocaml-modules/mopsa/default.nix @@ -0,0 +1,80 @@ +{ + lib, + buildDunePackage, + fetchFromGitLab, + clang, + libclang, + libllvm, + flint, + mpfr, + pplite, + ocaml, + menhir, + apron, + camlidl, + yojson, + zarith, +}: + +buildDunePackage rec { + pname = "mopsa"; + version = "1.0"; + + minimalOCamlVersion = "4.12"; + + src = fetchFromGitLab { + owner = "mopsa"; + repo = "mopsa-analyzer"; + rev = "v${version}"; + hash = "sha256-nGnWwV7g3SYgShbXGUMooyOdFwXFrQHnQvlc8x9TAS4="; + }; + + nativeBuildInputs = [ + clang + libllvm + menhir + ]; + + buildInputs = [ + camlidl + flint + libclang + mpfr + pplite + ]; + + propagatedBuildInputs = [ + apron + yojson + zarith + ]; + + postPatch = '' + patchShebangs bin + ''; + + buildPhase = '' + runHook preBuild + dune build --profile release -p mopsa + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + dune install --profile release --prefix=$bin --libdir=$out/lib/ocaml/${ocaml.version}/site-lib + runHook postInstall + ''; + + outputs = [ + "bin" + "out" + ]; + + meta = { + license = lib.licenses.lgpl3Plus; + homepage = "https://mopsa.lip6.fr/"; + description = "A Modular and Open Platform for Static Analysis using Abstract Interpretation"; + maintainers = [ lib.maintainers.vbgl ]; + }; + +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 46988f82680d..112606260c3d 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -18810,6 +18810,8 @@ with pkgs; moon = callPackage ../development/tools/build-managers/moon/default.nix { }; + mopsa = ocamlPackages.mopsa.bin; + msgpack-tools = callPackage ../development/tools/msgpack-tools { }; msgpuck = callPackage ../development/libraries/msgpuck { }; diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index da8b7108816d..b8072a5ef5ce 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -1181,6 +1181,8 @@ let mmap = callPackage ../development/ocaml-modules/mmap { }; + mopsa = callPackage ../development/ocaml-modules/mopsa { }; + morbig = callPackage ../development/ocaml-modules/morbig { }; mparser = callPackage ../development/ocaml-modules/mparser { };