Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at flake-libs 73 lines 1.8 kB view raw
1{ 2 lib, 3 stdenv, 4 fetchurl, 5 gprbuild, 6 which, 7 gnat, 8 xmlada, 9 gnatcoll-core, 10 gnatcoll-iconv, 11 gnatcoll-gmp, 12 enableShared ? !stdenv.hostPlatform.isStatic, 13 # kb database source, if null assume it is pregenerated 14 gpr2kbdir ? null, 15}: 16 17stdenv.mkDerivation rec { 18 pname = "gpr2"; 19 version = "25.0.0"; 20 21 src = fetchurl { 22 url = "https://github.com/AdaCore/gpr/releases/download/v${version}/gpr2-with-gprconfig_kb-${lib.versions.majorMinor version}.tgz"; 23 sha512 = "70fe0fcf541f6d3d90a34cab1638bbc0283dcd765c000406e0cfb73bae1817b30ddfe73f3672247a97c6b6bfc41900bc96a4440ca0c660f9c2f7b9d3cc8f8dcf"; 24 }; 25 26 nativeBuildInputs = [ 27 which 28 gnat 29 gprbuild 30 ]; 31 32 makeFlags = 33 [ 34 "prefix=$(out)" 35 "PROCESSORS=$(NIX_BUILD_CORES)" 36 "ENABLE_SHARED=${if enableShared then "yes" else "no"}" 37 "GPR2_BUILD=release" 38 ] 39 ++ lib.optionals (gpr2kbdir != null) [ 40 "GPR2KBDIR=${gpr2kbdir}" 41 ]; 42 43 configurePhase = '' 44 runHook preConfigure 45 make setup "''${makeFlagsArray[@]}" $makeFlags 46 runHook postConfigure 47 ''; 48 49 # fool make into thinking pregenerated targets are up to date 50 preBuild = lib.optionalString (gpr2kbdir == null) '' 51 touch .build/kb/{*.adb,*.ads,collect_kb} 52 ''; 53 54 propagatedBuildInputs = [ 55 xmlada 56 gnatcoll-gmp 57 gnatcoll-core 58 gnatcoll-iconv 59 ]; 60 61 meta = with lib; { 62 description = "The framework for analyzing the GNAT Project (GPR) files"; 63 homepage = "https://github.com/AdaCore/gpr"; 64 license = with licenses; [ 65 asl20 66 gpl3Only 67 ]; 68 maintainers = with maintainers; [ heijligen ]; 69 platforms = platforms.all; 70 # TODO(@sternenseemann): investigate failure with gnat 13 71 broken = lib.versionOlder gnat.version "14"; 72 }; 73}