NetworkManager/introspection/meson.build
Iñigo Martínez 5e16bcf268 meson: Improve dependency system
Some targets are missing dependencies on some generated sources in
the meson port. These makes the build to fail due to missing source
files on a highly parallelized build.

These dependencies have been resolved by taking advantage of meson's
internal dependencies which can be used to pass source files,
include directories, libraries and compiler flags.

One of such internal dependencies called `core_dep` was already in
use. However, in order to avoid any confusion with another new
internal dependency called `nm_core_dep`, which is used to include
directories and source files from the `libnm-core` directory, the
`core_dep` dependency has been renamed to `nm_dep`.

These changes have allowed minimizing the build details which are
inherited by using those dependencies. The parallelized build has
also been improved.
2018-01-10 12:20:17 +01:00

102 lines
3.6 KiB
Meson

ifaces_secret_agent_xml = files('org.freedesktop.NetworkManager.SecretAgent.xml')
ifaces_vpn_plugin_xml = files('org.freedesktop.NetworkManager.VPN.Plugin.xml')
ifaces = [
'org.freedesktop.NetworkManager.AccessPoint',
'org.freedesktop.NetworkManager.AgentManager',
'org.freedesktop.NetworkManager.Checkpoint',
'org.freedesktop.NetworkManager.Connection.Active',
'org.freedesktop.NetworkManager.Device.Adsl',
'org.freedesktop.NetworkManager.Device.Bluetooth',
'org.freedesktop.NetworkManager.Device.Bond',
'org.freedesktop.NetworkManager.Device.Bridge',
'org.freedesktop.NetworkManager.Device.Dummy',
'org.freedesktop.NetworkManager.Device.Generic',
'org.freedesktop.NetworkManager.Device.Infiniband',
'org.freedesktop.NetworkManager.Device.IPTunnel',
'org.freedesktop.NetworkManager.Device.Macsec',
'org.freedesktop.NetworkManager.Device.Macvlan',
'org.freedesktop.NetworkManager.Device.Modem',
'org.freedesktop.NetworkManager.Device.OlpcMesh',
'org.freedesktop.NetworkManager.Device.OvsInterface',
'org.freedesktop.NetworkManager.Device.OvsPort',
'org.freedesktop.NetworkManager.Device.OvsBridge',
'org.freedesktop.NetworkManager.Device.Ppp',
'org.freedesktop.NetworkManager.Device.Statistics',
'org.freedesktop.NetworkManager.Device.Team',
'org.freedesktop.NetworkManager.Device.Tun',
'org.freedesktop.NetworkManager.Device.Veth',
'org.freedesktop.NetworkManager.Device.Vlan',
'org.freedesktop.NetworkManager.Device.Vxlan',
'org.freedesktop.NetworkManager.Device.WiMax',
'org.freedesktop.NetworkManager.Device.Wired',
'org.freedesktop.NetworkManager.Device.Wireless',
'org.freedesktop.NetworkManager.Device',
'org.freedesktop.NetworkManager.DHCP4Config',
'org.freedesktop.NetworkManager.DHCP6Config',
'org.freedesktop.NetworkManager.DnsManager',
'org.freedesktop.NetworkManager.IP4Config',
'org.freedesktop.NetworkManager.IP6Config',
'org.freedesktop.NetworkManager',
'org.freedesktop.NetworkManager.PPP',
'org.freedesktop.NetworkManager.SecretAgent',
'org.freedesktop.NetworkManager.Settings.Connection',
'org.freedesktop.NetworkManager.Settings',
'org.freedesktop.NetworkManager.VPN.Connection',
'org.freedesktop.NetworkManager.VPN.Plugin',
'org.freedesktop.NetworkManager.WiMax.Nsp'
]
ifaces_xmls = []
sources = []
# FIXME?: DBUS_INTERFACE_DOCS/docbook files are generated in
# "meson.current_build_dir()" instead of "meson.source_root()/docs/api"
foreach iface: ifaces
iface_xml = iface + '.xml'
ifaces_xmls += files(iface_xml)
sources += gnome.gdbus_codegen(
iface,
iface_xml,
interface_prefix: 'org.freedesktop.NetworkManager',
namespace: 'NMDBus',
docbook: 'dbus'
)
# FIXME: gnome.gdbus_codegen should return the docbook as a target result
content_files += join_paths(meson.current_build_dir(), 'dbus-' + iface_xml)
endforeach
install_data(
ifaces_xmls,
install_dir: dbus_ifaces_dir
)
'''
# gdbus-codegen 2.38 will emit code that requires glib 2.38, which
# will then cause availability warnings if we define
# GLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_32.
#
# This is fixed in GLib 2.40 (it emits code that takes
# GLIB_VERSION_MAX_ALLOWED into account), so this workaround can go
# away when we depend on that.
introspection_libnmdbus_la_CPPFLAGS = $(filter-out -DGLIB_VERSION_MAX_ALLOWED%,$(GLIB_CFLAGS))
'''
libnmdbus = static_library(
'nmdbus',
sources: sources,
include_directories: top_inc,
dependencies: glib_dep
)
libnmdbus_dep = declare_dependency(
# FIXME: only headers should be added here to resolve dependencies on
# libNetworkManagerBase and libNetworkManager
#sources: sources,
include_directories: include_directories('.'),
link_with: libnmdbus
)