diff options
Diffstat (limited to 'pkgs/development/tools/analysis/frama-c/default.nix')
-rw-r--r-- | pkgs/development/tools/analysis/frama-c/default.nix | 48 |
1 files changed, 27 insertions, 21 deletions
diff --git a/pkgs/development/tools/analysis/frama-c/default.nix b/pkgs/development/tools/analysis/frama-c/default.nix index 179a74c56d5..a1c7265e05d 100644 --- a/pkgs/development/tools/analysis/frama-c/default.nix +++ b/pkgs/development/tools/analysis/frama-c/default.nix @@ -1,20 +1,28 @@ { lib, stdenv, fetchurl, makeWrapper, writeText , autoconf, ncurses, graphviz, doxygen -, ocamlPackages, ltl2ba, coq, why3, +, ocamlPackages, ltl2ba, coq, why3 +, gdk-pixbuf, wrapGAppsHook }: let mkocamlpath = p: "${p}/lib/ocaml/${ocamlPackages.ocaml.version}/site-lib"; runtimeDeps = with ocamlPackages; [ - apron + apron.dev biniou camlzip easy-format - menhir + menhirLib mlgmpidl num ocamlgraph + stdlib-shims why3 + re + seq + sexplib + sexplib0 + parsexp + base yojson zarith ]; @@ -23,46 +31,44 @@ in stdenv.mkDerivation rec { pname = "frama-c"; - version = "21.1"; - slang = "Scandium"; + version = "23.1"; + slang = "Vanadium"; src = fetchurl { - url = "http://frama-c.com/download/frama-c-${version}-${slang}.tar.gz"; - sha256 = "0qq0d08dzr0dmdjysiimdqmwlzgnn932vp5kf8lfn3nl45ai09dy"; + url = "https://frama-c.com/download/frama-c-${version}-${slang}.tar.gz"; + sha256 = "1rgkq9sg436smw005ag0j6y3xryhjn18a07m5wjfrfp0s1438nnj"; }; preConfigure = lib.optionalString stdenv.cc.isClang "configureFlagsArray=(\"--with-cpp=clang -E -C\")"; - nativeBuildInputs = [ autoconf makeWrapper ]; + nativeBuildInputs = [ autoconf wrapGAppsHook ]; buildInputs = with ocamlPackages; [ - ncurses ocaml findlib ltl2ba ocamlgraph yojson menhir camlzip + ncurses ocaml findlib ltl2ba ocamlgraph ocamlgraph_gtk yojson menhirLib camlzip lablgtk coq graphviz zarith apron why3 mlgmpidl doxygen + gdk-pixbuf ]; enableParallelBuilding = true; - fixupPhase = '' - for p in $out/bin/frama-c{,-gui}; - do - wrapProgram $p --prefix OCAMLPATH ':' ${ocamlpath} - done + preFixup = '' + gappsWrapperArgs+=(--prefix OCAMLPATH ':' ${ocamlpath}) ''; # Allow loading of external Frama-C plugins setupHook = writeText "setupHook.sh" '' addFramaCPath () { if test -d "''$1/lib/frama-c/plugins"; then - export FRAMAC_PLUGIN="''${FRAMAC_PLUGIN}''${FRAMAC_PLUGIN:+:}''$1/lib/frama-c/plugins" - export OCAMLPATH="''${OCAMLPATH}''${OCAMLPATH:+:}''$1/lib/frama-c/plugins" + export FRAMAC_PLUGIN="''${FRAMAC_PLUGIN-}''${FRAMAC_PLUGIN:+:}''$1/lib/frama-c/plugins" + export OCAMLPATH="''${OCAMLPATH-}''${OCAMLPATH:+:}''$1/lib/frama-c/plugins" fi if test -d "''$1/lib/frama-c"; then - export OCAMLPATH="''${OCAMLPATH}''${OCAMLPATH:+:}''$1/lib/frama-c" + export OCAMLPATH="''${OCAMLPATH-}''${OCAMLPATH:+:}''$1/lib/frama-c" fi if test -d "''$1/share/frama-c/"; then - export FRAMAC_EXTRA_SHARE="''${FRAMAC_EXTRA_SHARE}''${FRAMAC_EXTRA_SHARE:+:}''$1/share/frama-c" + export FRAMAC_EXTRA_SHARE="''${FRAMAC_EXTRA_SHARE-}''${FRAMAC_EXTRA_SHARE:+:}''$1/share/frama-c" fi } @@ -74,8 +80,8 @@ stdenv.mkDerivation rec { meta = { description = "An extensible and collaborative platform dedicated to source-code analysis of C software"; homepage = "http://frama-c.com/"; - license = stdenv.lib.licenses.lgpl21; - maintainers = with stdenv.lib.maintainers; [ thoughtpolice amiddelk ]; - platforms = stdenv.lib.platforms.unix; + license = lib.licenses.lgpl21; + maintainers = with lib.maintainers; [ thoughtpolice amiddelk ]; + platforms = lib.platforms.unix; }; } |