python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / pkgs / development / libraries / ada / gnatcoll / bindings.nix
blobfb2a744be7fb5642821b8ef793f34c3536b25a0a
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
19 let
20   # omit python (2.7), no need to introduce a
21   # dependency on an EOL package for no reason
22   libsFor = {
23     iconv = [ libiconv ];
24     gmp = [ gmp ];
25     lzma = [ xz ];
26     readline = [ readline ];
27     python3 = [ python3 ncurses ];
28     syslog = [ ];
29     zlib = [ zlib ];
30   };
34 stdenv.mkDerivation rec {
35   pname = "gnatcoll-${component}";
36   version = "22.0.0";
38   src = fetchFromGitHub {
39     owner = "AdaCore";
40     repo = "gnatcoll-bindings";
41     rev = "v${version}";
42     sha256 = "0wbwnd6jccwfd4jdxbnzhc0jhm8ad4phz6y9b1gk8adykkk6jcz4";
43   };
45   patches = [
46     ./omp-setup-text-mode.patch
47   ];
49   nativeBuildInputs = [
50     gprbuild
51     gnat
52     python3
53   ];
55   # propagate since gprbuild needs to find referenced .gpr files
56   # and all dependency C libraries when statically linking a
57   # downstream executable.
58   propagatedBuildInputs = [
59     gnatcoll-core
60   ] ++ libsFor."${component}" or [];
62   # explicit flag for GPL acceptance because upstreams
63   # allows a gcc runtime exception for all bindings
64   # except for readline (since it is GPL w/o exceptions)
65   buildFlags = lib.optionals (component == "readline") [
66     "--accept-gpl"
67   ];
69   buildPhase = ''
70     runHook preBuild
71     ${python3.interpreter} ${component}/setup.py build --prefix $out $buildFlags
72     runHook postBuild
73   '';
75   installPhase = ''
76     runHook preInstall
77     ${python3.interpreter} ${component}/setup.py install --prefix $out
78     runHook postInstall
79   '';
81   meta = with lib; {
82     description = "GNAT Components Collection - Bindings to C libraries";
83     homepage = "https://github.com/AdaCore/gnatcoll-bindings";
84     license = licenses.gpl3Plus;
85     platforms = platforms.all;
86     maintainers = [ maintainers.sternenseemann ];
87   };