On Wed, Nov 13, 2024 at 09:57:55AM -0500, Eli Schwartz wrote: > On 11/13/24 8:29 AM, Patrick Steinhardt wrote: > > Fair. I don't really expect anybody to use the combination of muon/sumo > > for everyday work, mostly because the usability is not quite up to par > > with Meson/Ninja. But there are two use cases that I deem important: > > (samu :P) Heh. Just double checked that I got it correct in the docs, but seems like I did. > >> Thanks. I don't want to be the CMake champion, so here are a few > >> helpful/surprising details about the Meson build to help make it better. > >> > >> > >> (1) I first built w/out having "curl-config" installed. I was surprised > >> to find that "ninja -C build install" ended up installing "bin/curl" and > >> "bin/curl-config" into the prefix. > >> > >> Is there a way to have the install step only install Git without > >> bringing along these other non-Git bits? > > > > It definitely shouldn't install curl and curl-config, I'll have a look > > at that. But other than that Meson is currently set up such that it will > > automatically fall back to the subprojects in case certain dependencies > > cannot be found. This can be disabled via `meson setup --wrap-mode > > nofallback`. > > https://github.com/mesonbuild/wrapdb/tree/master/subprojects/packagefiles/curl > > could be updated to handle the case where meson.is_subproject() returns > "true", by not installing tooling. > > Alternatively, meson install --skip-subprojects can avoid installing > *any* files from subprojects, on the theory that subprojects exist > solely to provide static libraries linked into the real project. > > (In theory, one could have a subproject where arbitrary data files from > a subproject dependency are crucial at runtime. I think the gnome > ecosystem does this, hence using GLib / Gtk as a subproject "needs" to > install the subproject too -- but curl definitely doesn't have this > issue...) Yeah. `--skip-subprojects` is one way to do this, but that of course requires the user to know about it. It would be nice if one could wire this up in "meson.build" directly, e.g. by passing a `install: false` flag to `dependency()`. We don't want to install any of the subprojects as we build all of them statically and link them into the final binaries. Patrick