mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-05-21 10:48:11 +02:00
"libnm-core/" is rather complicated. It provides a static library that
is linked into libnm.so and NetworkManager. It also contains public
headers (like "nm-setting.h") which are part of public libnm API.
Then we have helper libraries ("libnm-core/nm-libnm-core-*/") which
only rely on public API of libnm-core, but are themself static
libraries that can be used by anybody who uses libnm-core. And
"libnm-core/nm-libnm-core-intern" is used by libnm-core itself.
Move "libnm-core/" to "src/". But also split it in different
directories so that they have a clearer purpose.
The goal is to have a flat directory hierarchy. The "src/libnm-core*/"
directories correspond to the different modules (static libraries and set
of headers that we have). We have different kinds of such modules because
of how we combine various code together. The directory layout now reflects
this.
1.3 KiB
1.3 KiB
libnm-core-aux-intern
libnm-core-aux-intern is a static library that:
- uses parts of
libnm-core-impl, that are public API oflibnm(i.e.libnm-core-public). - that is statically linked into
libnm-core-impl(and thuslibnmand NetworkManager core. - that can also be statically linked into other users of
libnm.
Basically, it is a static library with utility functions that extends
libnm-core-impl (the part that is public API of libnm),
but it is also used by libnm-core-impl itself.
That means:
- you can use it everywhere where you either statically link
with
libnm-core-impl, or dynamically link withlibnm. - you can even use it inside of
libnm-core-implitself. This is the difference betweenlibnm-core-aux-internandlibnm-core-aux-extern.
Note that libnm-core-aux-intern only uses public API of libnm.
This directory should not be added to the include search path. Instead,
users should fully qualify the include like #include "libnm-core-aux-intern/nm-auth-subject.h".