Files
NetworkManager/introspection/meson.build
Beniamino Galvani dcfddeef7a build: meson: fix generation of api docs
We need to copy all introspection files to the same directory when
building the documentation.

Note that we only require Meson 0.44, but for the documentation at
least 0.46 is needed because of a new functionality of
gnome.gdbus_codegen(). In this way we can still build on Travis CI
(without documentation).
2018-09-28 17:25:46 +02:00

102 lines
3.5 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.Lowpan',
'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.Wpan',
'org.freedesktop.NetworkManager.Device.WireGuard',
'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 = []
introspection_files = []
# 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)
res = gnome.gdbus_codegen(
iface,
iface_xml,
interface_prefix: 'org.freedesktop.NetworkManager',
namespace: 'NMDBus',
docbook: 'dbus'
)
sources += res
content_files += join_paths(meson.current_build_dir(), 'dbus-' + iface_xml)
# res is an array only since 0.46. Documentation won't work with
# older versions
if meson.version().version_compare('>= 0.46.0')
introspection_files += res[2]
endif
endforeach
install_data(
ifaces_xmls,
install_dir: dbus_ifaces_dir
)
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
)