-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow overriding g-ir-scanner and g-ir-compiler binaries. #7072
Conversation
Who knows the most about this? @xclaesse? |
Hmm, there are 4 places that tool can come from:
However, since a pkgconfig file is required and always contains a path to those tools, I'm not sure to understand use cases for having it in cross/native file and lookup in system PATH. Why do you need a wrapper? |
So essentially that is what this makes possible for those particular binaries, otherwise the ones found by pkgconfig are used unconditionally.
Is this actually a requirement of gobject-introspection or is it a meson requirement? So essentially the pkgconfig file in the build(host in buildroot terms) system pkgconfig lib path used for
You need a qemu wrapper to cross compile with these tools. |
This is useful when one needs to force meson to use wrappers for cross compilation. Signed-off-by: James Hilliard <[email protected]>
OK, fine with me. |
gobject-introspection is infamous for being difficult to get working with cross compilation. But the situation has improved recently with https://gitlab.gnome.org/GNOME/gobject-introspection/-/merge_requests/64, thanks to @kanavin from the Yocto project. The upshot is now only *some*, not all, of the executables need to be run on the host platform with the exe wrapper. On the meson side, there have been two attempts to fix things for cross: - https://github.com/mesonbuild/meson/pull/2965from @kanavin and the Yocto projejct, which because it predates mesonbuild#4010 had to be somewhat hacky - mesonbuild#7072 recently merged which allows specifying some binaries with a cross file. But, I think we can make a more seamless user interface that won't require extra config, like for native builds. gobject-introspection provides the binaries in its pkg-config file, and Meson now cleanly supports separate `native: true` and `native: false` pkg-config paths and lookup. We should just need to add separate `native: true` and `native: false` deps, and I have done that, but I am not sure exactly which should be used when. I am coming at this as a distro maintainer not even particularly involved with gnome things and so I'll need some advice on what to do next.
This is useful when one needs to force meson to use wrappers for cross compilation.