From b6ca91fba5fd2b6c5db4ececcf2b6cbaf846143e Mon Sep 17 00:00:00 2001 From: Vincent Laporte Date: Sun, 9 Dec 2018 04:52:24 +0000 Subject: [PATCH] ocamlPackages.elina: init at 1.1 ELINA contains optimized implementations of popular numerical abstract domains such as Polyhedra, Octagon and Zones for static analysis. homepage: http://elina.ethz.ch/ --- .../ocaml-modules/elina/default.nix | 33 +++++++++++++++++++ pkgs/top-level/ocaml-packages.nix | 2 ++ 2 files changed, 35 insertions(+) create mode 100644 pkgs/development/ocaml-modules/elina/default.nix diff --git a/pkgs/development/ocaml-modules/elina/default.nix b/pkgs/development/ocaml-modules/elina/default.nix new file mode 100644 index 00000000000..44bfeb2d474 --- /dev/null +++ b/pkgs/development/ocaml-modules/elina/default.nix @@ -0,0 +1,33 @@ +{ stdenv, fetchurl, perl, gmp, mpfr, ocaml, findlib, camlidl, apron }: + +stdenv.mkDerivation rec { + version = "1.1"; + name = "ocaml${ocaml.version}-elina-${version}"; + src = fetchurl { + url = "http://files.sri.inf.ethz.ch/elina-${version}.tar.gz"; + sha256 = "1nymykskq1yx87y4xl6hl9i4q6kv0qaq25rniqgl1bfn883p1ysc"; + }; + + buildInputs = [ perl ocaml findlib ]; + + propagatedBuildInputs = [ apron camlidl gmp mpfr ]; + + prefixKey = "--prefix "; + configureFlags = [ + "--use-apron" + "--use-opam" + "--apron-prefix" "${apron}" + ] + ++ stdenv.lib.optional stdenv.isDarwin "--absolute-dylibs" + ; + + createFindlibDestdir = true; + + meta = { + description = "ETH LIbrary for Numerical Analysis"; + homepage = "http://elina.ethz.ch/"; + license = stdenv.lib.licenses.lgpl3; + maintainers = [ stdenv.lib.maintainers.vbgl ]; + inherit (ocaml.meta) platforms; + }; +} diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index 85cc5497c40..0af48890ff1 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -228,6 +228,8 @@ let easy-format = callPackage ../development/ocaml-modules/easy-format { }; + elina = callPackage ../development/ocaml-modules/elina { }; + eliom = callPackage ../development/ocaml-modules/eliom { js_of_ocaml-lwt = js_of_ocaml-lwt.override { ocaml_lwt = lwt3;