biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / development / ada-modules / gnatprove / default.nix
blob884406d3342e2e53f67e396e2ba881b3248ccb3d
1 { stdenv
2 , lib
3 , fetchFromGitHub
4 , gnat
5 , gnatcoll-core
6 , gprbuild
7 , python3
8 , ocamlPackages
9 , makeWrapper
11 let
12   gnat_version = lib.versions.major gnat.version;
14   fetchSpark2014 = { rev, sha256 } : fetchFromGitHub {
15     owner = "AdaCore";
16     repo = "spark2014";
17     fetchSubmodules = true;
18     inherit rev sha256;
19   };
21   spark2014 = {
22     "12" = {
23       src = fetchSpark2014 {
24         rev = "ab34e07080a769b63beacc141707b5885c49d375"; # branch fsf-12
25         sha256 = "sha256-7pe3eWitpxmqzjW6qEIEuN0qr2IR+kJ7Ssc9pTBcCD8=";
26       };
27       commit_date = "2022-05-25";
28     };
29     "13" = {
30       src = fetchSpark2014 {
31         rev = "12db22e854defa9d1c993ef904af1e72330a68ca"; # branch fsf-13
32         sha256 = "sha256-mZWP9yF1O4knCiXx8CqolnS+93bM+hTQy40cd0HZmwI=";
33       };
34       commit_date = "2023-01-05";
35     };
36   };
38   thisSpark = spark2014.${gnat_version} or
39     (builtins.throw "GNATprove depend on a specific GNAT version and can't be built using GNAT ${gnat_version}.");
42 stdenv.mkDerivation rec {
43   pname = "gnatprove";
44   version = "fsf-${gnat_version}_${thisSpark.commit_date}";
46   src = thisSpark.src;
48   nativeBuildInputs = [
49     gnat
50     gprbuild
51     python3
52     ocamlPackages.ocaml
53     makeWrapper
54   ];
56   buildInputs = [
57     gnatcoll-core
58     ocamlPackages.camlzip
59     ocamlPackages.findlib
60     ocamlPackages.menhir
61     ocamlPackages.menhirLib
62     ocamlPackages.num
63     ocamlPackages.yojson
64     ocamlPackages.zarith
65   ];
67   propagatedBuildInputs = [
68     gprbuild
69   ];
71   postPatch = ''
72     # gnat2why/gnat_src points to the GNAT sources
73     tar xf ${gnat.cc.src} gcc-${gnat.cc.version}/gcc/ada
74     mv gcc-${gnat.cc.version}/gcc/ada gnat2why/gnat_src
75   '';
77   configurePhase = ''
78     make setup
79   '';
81   installPhase = ''
82     make install-all
83     cp -a ./install/. $out
84     mkdir $out/share/gpr
85     ln -s $out/lib/gnat/* $out/share/gpr/
86   '';
88   meta = with lib; {
89     description = "a software development technology specifically designed for engineering high-reliability applications";
90     homepage = "https://github.com/AdaCore/spark2014";
91     maintainers = [ maintainers.jiegec ];
92     license = licenses.gpl3;
93     platforms = platforms.all;
94   };