mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-02 07:31:26 +00:00
gobjectIntrospection: use absolute path for cairo GIR
Cairo does not provide its own GObject bindinds so they are provided by gobject-introspection package. Unfortunately, this means that if we want to use the absolute path, we need gi to depend on cairo, which increases the closure size from 41M to 56M. We will probably want to split the typelib into a separate output. Closes: #34080
This commit is contained in:
parent
4fd0a3a43d
commit
e44038bcca
@ -0,0 +1,11 @@
|
||||
--- a/gir/cairo-1.0.gir.in
|
||||
+++ b/gir/cairo-1.0.gir.in
|
||||
@@ -5,7 +5,7 @@
|
||||
xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
|
||||
<package name="%CAIRO_GIR_PACKAGE%"/>
|
||||
<namespace name="cairo" version="1.0"
|
||||
- shared-library="%CAIRO_SHARED_LIBRARY%"
|
||||
+ shared-library="@cairoLib@/%CAIRO_SHARED_LIBRARY%"
|
||||
c:identifier-prefixes="cairo"
|
||||
c:symbol-prefixes="cairo">
|
||||
<record name="Context" c:type="cairo_t" foreign="1"
|
@ -1,5 +1,5 @@
|
||||
{ stdenv, fetchurl, glib, flex, bison, pkgconfig, libffi, python
|
||||
, libintlOrEmpty, cctools
|
||||
, libintlOrEmpty, cctools, cairo
|
||||
, substituteAll, nixStoreDir ? builtins.storeDir
|
||||
}:
|
||||
# now that gobjectIntrospection creates large .gir files (eg gtk3 case)
|
||||
@ -38,10 +38,17 @@ stdenv.mkDerivation rec {
|
||||
|
||||
setupHook = ./setup-hook.sh;
|
||||
|
||||
patches = stdenv.lib.singleton (substituteAll {
|
||||
src = ./absolute_shlib_path.patch;
|
||||
inherit nixStoreDir;
|
||||
});
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./absolute_shlib_path.patch;
|
||||
inherit nixStoreDir;
|
||||
})
|
||||
# https://github.com/NixOS/nixpkgs/issues/34080
|
||||
(substituteAll {
|
||||
src = ./absolute_gir_path.patch;
|
||||
cairoLib = "${getLib cairo}/lib";
|
||||
})
|
||||
];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "A middleware layer between C libraries and language bindings";
|
||||
|
Loading…
Reference in New Issue
Block a user