Skip to content
  • Thomas Haller's avatar
    build: refine the NETWORKMANAGER_COMPILATION define · 22ef6a50
    Thomas Haller authored
    Note that:
    
     - we compile some source files multiple times. Most notably those
       under "shared/".
    
     - we include a default header "shared/nm-default.h" in every source
       file. This header is supposed to setup a common environment by defining
       and including parts that are commonly used. As we always include the
       same header, the header must behave differently depending
       one whether the compilation is for libnm-core, NetworkManager or
       libnm-glib. E.g. it must include <glib/gi18n.h> or <glib/gi18n-lib.h>
       depending on whether we compile a library or an application.
    
    For that, the source files need the NETWORKMANAGER_COMPILATION #define
    to behave accordingly.
    
    Extend the define to be composed of flags. These flags are all named
    NM_NETWORKMANAGER_COMPILATION_WITH_*, they indicate which part of the
    build are available. E.g. when building libnm-core.la itself, then
    WITH_LIBNM_CORE, WITH_LIBNM_CORE_INTERNAL, and WITH_LIBNM_CORE_PRIVATE
    are available. When building NetworkManager, WITH_LIBNM_CORE_PRIVATE
    is not available but the internal parts are still accessible. When
    building nmcli, only WITH_LIBNM_CORE (the public part) is available.
    This granularily controls the build.
    22ef6a50