mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-02-16 17:14:00 +00:00
gnatprove: Make src dependend on gcc version
Gnatprove is tightly bound to a specific gcc version. Use the gcc input version to determin which gnatprove/spark2014 sources should be used. For now gcc 12 is the only working option. gcc 13 will work as soon as all ada buildInputs can be provided as gcc 13 build.
This commit is contained in:
parent
c1b5933e79
commit
d22ba0a2a7
@ -1,29 +1,52 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, gnat12
|
||||
, gnat
|
||||
, gnatcoll-core
|
||||
, gprbuild
|
||||
, python3
|
||||
, ocamlPackages
|
||||
, makeWrapper
|
||||
}:
|
||||
let
|
||||
gnat_version = lib.versions.major gnat.version;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnatprove";
|
||||
version = "unstable-2022-05-25";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
fetchSpark2014 = { rev, sha256 } : fetchFromGitHub {
|
||||
owner = "AdaCore";
|
||||
repo = "spark2014";
|
||||
# commit on fsf-12 branch
|
||||
rev = "ab34e07080a769b63beacc141707b5885c49d375";
|
||||
sha256 = "sha256-7pe3eWitpxmqzjW6qEIEuN0qr2IR+kJ7Ssc9pTBcCD8=";
|
||||
fetchSubmodules = true;
|
||||
inherit rev sha256;
|
||||
};
|
||||
|
||||
spark2014 = {
|
||||
"12" = {
|
||||
src = fetchSpark2014 {
|
||||
rev = "ab34e07080a769b63beacc141707b5885c49d375"; # branch fsf-12
|
||||
sha256 = "sha256-7pe3eWitpxmqzjW6qEIEuN0qr2IR+kJ7Ssc9pTBcCD8=";
|
||||
};
|
||||
commit_date = "2022-05-25";
|
||||
};
|
||||
"13" = {
|
||||
src = fetchSpark2014 {
|
||||
rev = "12db22e854defa9d1c993ef904af1e72330a68ca"; # branch fsf-13
|
||||
sha256 = "sha256-mZWP9yF1O4knCiXx8CqolnS+93bM+hTQy40cd0HZmwI=";
|
||||
};
|
||||
commit_date = "2023-01-05";
|
||||
};
|
||||
};
|
||||
|
||||
thisSpark = spark2014.${gnat_version} or
|
||||
(builtins.throw "GNATprove depend on a specific GNAT version and can't be built using GNAT ${gnat_version}.");
|
||||
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnatprove";
|
||||
version = "fsf-${gnat_version}_${thisSpark.commit_date}";
|
||||
|
||||
src = thisSpark.src;
|
||||
|
||||
nativeBuildInputs = [
|
||||
gnat12
|
||||
gnat
|
||||
gprbuild
|
||||
python3
|
||||
ocamlPackages.ocaml
|
||||
@ -43,8 +66,8 @@ stdenv.mkDerivation rec {
|
||||
|
||||
postPatch = ''
|
||||
# gnat2why/gnat_src points to the GNAT sources
|
||||
tar xf ${gnat12.cc.src} gcc-${gnat12.cc.version}/gcc/ada
|
||||
mv gcc-${gnat12.cc.version}/gcc/ada gnat2why/gnat_src
|
||||
tar xf ${gnat.cc.src} gcc-${gnat.cc.version}/gcc/ada
|
||||
mv gcc-${gnat.cc.version}/gcc/ada gnat2why/gnat_src
|
||||
'';
|
||||
|
||||
configurePhase = ''
|
||||
|
Loading…
Reference in New Issue
Block a user