You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
NetworkManager has recently merged meson support. While improving it, I have noticed that some static libraries which depends on generated sources, are not building properly.
I don't know if this should be its normal behaviour, but this seems to be happening due to missing dependencies in ninja rules.
You can find this behaviour when building the libNetworkManagerBase.a library. One of its dependencies is libnmdbus, which is a static library built by a set of sources that are generated at build time. However, when building libNetworkManagerBase.a, I was expecting it to force the building of libnmdbus.a and finally the generated source, but it doesn't trigger their rules.
If nmdbus has generated headers that base.a uses, then those need to be explicitly put in the source list of base.a somehow (usually by a declare_dependency whose sources includes said headers). Simply having a link with between two static libraries does not add a link between them because the dependency .a file does not need to exist before building the dependent .a. Enforcing this kind of serialisation would inhibit build parallelism.
If this is not enough to fix the issue, please post the full error message you get when compiling.
You're right, and I suspected that that was the right answer. Actually, the headers can't be used directly because those sources are generated using gnome.gdbus_codegen which returns an opaque object. I have included a FIXME comment in a path that I have sent today, though I wasn't fully sure.
NetworkManager has recently merged meson support. While improving it, I have noticed that some static libraries which depends on generated sources, are not building properly.
I don't know if this should be its normal behaviour, but this seems to be happening due to missing dependencies in
ninja
rules.You can find this behaviour when building the libNetworkManagerBase.a library. One of its dependencies is libnmdbus, which is a static library built by a set of sources that are generated at build time. However, when building
libNetworkManagerBase.a
, I was expecting it to force the building oflibnmdbus.a
and finally the generated source, but it doesn't trigger their rules.The
ninja
rule is as follows:The
libnmdbus.a
target is missing, which should force the generation of files needed bylibNetworkManagerBase.a
.The text was updated successfully, but these errors were encountered: