biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / development / ada-modules / gnatcoll / bindings.nix
blobc8896c14c32f9bdfacd1e72692d5e383270aaab0
1 { stdenv
2 , lib
3 , fetchFromGitHub
4 , gnat
5 , gprbuild
6 , gnatcoll-core
7 , component
8 # component dependencies
9 , gmp
10 , libiconv
11 , xz
12 , gcc-unwrapped
13 , readline
14 , zlib
15 , python3
16 , ncurses
17 , darwin
20 let
21   # omit python (2.7), no need to introduce a
22   # dependency on an EOL package for no reason
23   libsFor = {
24     iconv = [ libiconv ];
25     gmp = [ gmp ];
26     lzma = [ xz ];
27     readline = [ readline ];
28     python3 = [ python3 ncurses ];
29     syslog = [ ];
30     zlib = [ zlib ];
31   };
35 stdenv.mkDerivation rec {
36   pname = "gnatcoll-${component}";
37   version = "24.0.0";
39   src = fetchFromGitHub {
40     owner = "AdaCore";
41     repo = "gnatcoll-bindings";
42     rev = "v${version}";
43     sha256 = "00aakpmr67r72l1h3jpkaw83p1a2mjjvfk635yy5c1nss3ji1qjm";
44   };
46   nativeBuildInputs = [
47     gprbuild
48     gnat
49     python3
50   ];
52   buildInputs = lib.optionals stdenv.isDarwin [
53     darwin.apple_sdk.frameworks.CoreFoundation
54   ];
56   # propagate since gprbuild needs to find referenced .gpr files
57   # and all dependency C libraries when statically linking a
58   # downstream executable.
59   propagatedBuildInputs = [
60     gnatcoll-core
61   ] ++ libsFor."${component}" or [];
63   # explicit flag for GPL acceptance because upstreams
64   # allows a gcc runtime exception for all bindings
65   # except for readline (since it is GPL w/o exceptions)
66   buildFlags = lib.optionals (component == "readline") [
67     "--accept-gpl"
68   ];
70   buildPhase = ''
71     runHook preBuild
72     ${python3.interpreter} ${component}/setup.py build --prefix $out $buildFlags
73     runHook postBuild
74   '';
76   installPhase = ''
77     runHook preInstall
78     ${python3.interpreter} ${component}/setup.py install --prefix $out
79     runHook postInstall
80   '';
82   meta = with lib; {
83     description = "GNAT Components Collection - Bindings to C libraries";
84     homepage = "https://github.com/AdaCore/gnatcoll-bindings";
85     license = licenses.gpl3Plus;
86     platforms = platforms.all;
87     maintainers = [ maintainers.sternenseemann ];
88   };