meson: pass library install paths to g-ir-scanner
We are patching g-ir-scanner to produce absolute paths in the GIR files. When an application uses an internal library placed in a non-standard path (e.g. $out/lib/gnome-shell), the scanner needs to be informed. For autotools-based apps, the full path was obtained from libtool-wrapped files; with Meson, this is no longer possible – we need to pass the path information in some other way. This commit channels the --fallback-library-path option added to g-ir-scanner in aforementioned patch.
This commit is contained in:
parent
eafd703a63
commit
1dba3c06eb
|
@ -18,6 +18,15 @@ python3Packages.buildPythonApplication rec {
|
||||||
popd
|
popd
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
# Unlike libtool, vanilla Meson does not pass any information
|
||||||
|
# about the path library will be installed to to g-ir-scanner,
|
||||||
|
# breaking the GIR when path other than ${!outputLib}/lib is used.
|
||||||
|
# We patch Meson to add a --fallback-library-path argument with
|
||||||
|
# library install_dir to g-ir-scanner.
|
||||||
|
./gir-fallback-path.patch
|
||||||
|
];
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
sed -i -e 's|e.fix_rpath(install_rpath)||' mesonbuild/scripts/meson_install.py
|
sed -i -e 's|e.fix_rpath(install_rpath)||' mesonbuild/scripts/meson_install.py
|
||||||
'';
|
'';
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
--- a/mesonbuild/modules/gnome.py
|
||||||
|
+++ b/mesonbuild/modules/gnome.py
|
||||||
|
@@ -427,6 +427,10 @@
|
||||||
|
scan_command += ['--no-libtool', '--namespace=' + ns, '--nsversion=' + nsversion, '--warn-all',
|
||||||
|
'--output', '@OUTPUT@']
|
||||||
|
|
||||||
|
+ fallback_libpath = girtarget.get_custom_install_dir()[0]
|
||||||
|
+ if fallback_libpath is not None and isinstance(fallback_libpath, str) and len(fallback_libpath) > 0 and fallback_libpath[0] == "/":
|
||||||
|
+ scan_command += ['--fallback-library-path=' + fallback_libpath]
|
||||||
|
+
|
||||||
|
header = kwargs.pop('header', None)
|
||||||
|
if header:
|
||||||
|
if not isinstance(header, str):
|
Loading…
Reference in New Issue