NetworkManager/libnm-core/nm-libnm-core-intern
Thomas Haller e5d2a05ad5
libnm: add "shared/nm-base/nm-base.h"
Our dependencies are complicated.

Currently "src/platform" uses parts of libnm-core and is relatively
strongly entangled with core. It would be nice to have that part
clearly independent from "src" and from "libnm-core".

Also, "src/platform/nm-platform-utils.h" uses NMEthtoolID enum, which
previously was defined in "libnm-core/nm-libnm-core-intern/nm-ethtool-utils.h".

Move that to a new place "shared/nm-base/nm-base.h".

Note that we have "libnm-core/nm-libnm-core-intern", which is
libnm/core related code which uses and is used by libnm-core.
There is a need for a library which is used by libnm-core, but
does not depend on libnm-core itself. Here comes "shared/nm-base".

Yes, many libraries. But the goal is to entangle the dependencies
and have a clear hierarchy of includes. And to have "shared/nm-platform"
independent of libnm-core.
2021-01-15 11:32:32 +01:00
..
nm-auth-subject.c all: update deprecated SPDX license identifiers 2021-01-05 09:46:21 +01:00
nm-auth-subject.h all: update deprecated SPDX license identifiers 2021-01-05 09:46:21 +01:00
nm-common-macros.h all: update deprecated SPDX license identifiers 2021-01-05 09:46:21 +01:00
nm-ethtool-utils.c all: update deprecated SPDX license identifiers 2021-01-05 09:46:21 +01:00
nm-ethtool-utils.h libnm: add "shared/nm-base/nm-base.h" 2021-01-15 11:32:32 +01:00
nm-libnm-core-utils.c all: update deprecated SPDX license identifiers 2021-01-05 09:46:21 +01:00
nm-libnm-core-utils.h all: update deprecated SPDX license identifiers 2021-01-05 09:46:21 +01:00
README.md all: move "shared/nm-libnm-core-aux" to "libnm-core/nm-libnm-core-aux" 2020-06-11 10:53:50 +02:00

nm-libnm-core-intern is a static library that:

  • uses parts of "libnm-core", that are public API of "libnm"
  • that is statically linked into libnm-core (and thus libnm and NetworkManager).
  • that can also be statically linked into other users of libnm.

Basically, it is a static library with utility functions that extends libnm-core (the part that is public API of libnm), but it is used by libnm-core.

That means:

  • you can use it everywhere where you either statically link with libnm-core, or dynamically link with libnm.
  • you can even use it inside of libnm-core itself. This is the difference between nm-libnm-core-intern and nm-libnm-core-aux.

Also, since nm-libnm-core-intern itself only uses public (stable) API of libnm, you theoretically can copy the sources into your own source tree.