nixpkgs/pkgs/development/libraries/gobject-introspection/default.nix
Vladimír Čunát 7fbcc56260 add introspection into GTK libs (part of #517)
This is all work of Marc Weber <marco-oweber@gmx.de>, except for a few nitpicks.

Tested space blowup: IMHO negligible to headers and similar stuff,
e.g. the firefox closure (reported by du) grows from 560 to 579 MB.
Saving space should be handled separately,
e.g. we have the multiple-outputs branch.
2013-08-04 21:11:24 +02:00

42 lines
1.6 KiB
Nix

{ stdenv, fetchurl, glib, flex, bison, pkgconfig, libffi, python
, libintlOrEmpty, autoconf, automake, otool }:
# now that gobjectIntrospection creates large .gir files (eg gtk3 case)
# it may be worth thinking about using multiple derivation outputs
# In that case its about 6MB which could be separated
stdenv.mkDerivation rec {
name = "gobject-introspection-1.36.0";
src = fetchurl {
url = "mirror://gnome/sources/gobject-introspection/1.36/${name}.tar.xz";
sha256 = "10v3idh489vra7pjn1g8f844nnl6719zgkgq3dv38xcf8afnvrz3";
};
buildInputs = [ flex bison glib pkgconfig python ]
++ libintlOrEmpty
++ stdenv.lib.optional stdenv.isDarwin otool;
propagatedBuildInputs = [ libffi ];
# Tests depend on cairo, which is undesirable (it pulls in lots of
# other dependencies).
configureFlags = [ "--disable-tests" ];
postInstall = "rm -rf $out/share/gtk-doc";
setupHook = ./setup-hook.sh;
meta = with stdenv.lib; {
description = "A middleware layer between C libraries and language bindings";
homepage = http://live.gnome.org/GObjectIntrospection;
maintainers = with maintainers; [ lovek323 urkud ];
platforms = platforms.unix;
longDescription = ''
GObject introspection is a middleware layer between C libraries (using
GObject) and language bindings. The C library can be scanned at compile
time and generate a metadata file, in addition to the actual native C
library. Then at runtime, language bindings can read this metadata and
automatically provide bindings to call into the C library.
'';
};
}