NetworkManager/libnm-core/meson.build

204 lines
7.2 KiB
Meson
Raw Normal View History

libnm_core_inc = include_directories('.')
libnm_core_headers = files(
'nm-connection.h',
'nm-core-types.h',
'nm-dbus-interface.h',
'nm-errors.h',
'nm-setting-8021x.h',
'nm-setting-adsl.h',
'nm-setting-bluetooth.h',
'nm-setting-bond.h',
'nm-setting-bridge-port.h',
'nm-setting-bridge.h',
'nm-setting-cdma.h',
'nm-setting-connection.h',
'nm-setting-dcb.h',
'nm-setting-dummy.h',
'nm-setting-generic.h',
'nm-setting-gsm.h',
'nm-setting-infiniband.h',
'nm-setting-ip-config.h',
'nm-setting-ip-tunnel.h',
'nm-setting-ip4-config.h',
'nm-setting-ip6-config.h',
'nm-setting-macsec.h',
'nm-setting-macvlan.h',
'nm-setting-olpc-mesh.h',
'nm-setting-ovs-bridge.h',
'nm-setting-ovs-interface.h',
'nm-setting-ovs-patch.h',
'nm-setting-ovs-port.h',
'nm-setting-ppp.h',
'nm-setting-pppoe.h',
'nm-setting-proxy.h',
'nm-setting-serial.h',
'nm-setting-tc-config.h',
'nm-setting-team-port.h',
'nm-setting-team.h',
'nm-setting-tun.h',
'nm-setting-user.h',
'nm-setting-vlan.h',
'nm-setting-vpn.h',
'nm-setting-vxlan.h',
'nm-setting-wimax.h',
'nm-setting-wired.h',
'nm-setting-wireless-security.h',
'nm-setting-wireless.h',
'nm-setting.h',
'nm-simple-connection.h',
'nm-utils.h',
'nm-version.h',
'nm-vpn-dbus-interface.h',
'nm-vpn-editor-plugin.h',
'nm-vpn-plugin-info.h'
)
libnm_core_settings_sources = files(
'nm-setting-8021x.c',
'nm-setting-adsl.c',
'nm-setting-bluetooth.c',
'nm-setting-bond.c',
'nm-setting-bridge-port.c',
'nm-setting-bridge.c',
'nm-setting-cdma.c',
'nm-setting-connection.c',
'nm-setting-dcb.c',
'nm-setting-dummy.c',
'nm-setting-generic.c',
'nm-setting-gsm.c',
'nm-setting-infiniband.c',
'nm-setting-ip-config.c',
'nm-setting-ip-tunnel.c',
'nm-setting-ip4-config.c',
'nm-setting-ip6-config.c',
'nm-setting-macsec.c',
'nm-setting-macvlan.c',
'nm-setting-olpc-mesh.c',
'nm-setting-ovs-bridge.c',
'nm-setting-ovs-interface.c',
'nm-setting-ovs-patch.c',
'nm-setting-ovs-port.c',
'nm-setting-ppp.c',
'nm-setting-pppoe.c',
'nm-setting-proxy.c',
'nm-setting-serial.c',
'nm-setting-tc-config.c',
'nm-setting-team-port.c',
'nm-setting-team.c',
'nm-setting-tun.c',
'nm-setting-user.c',
'nm-setting-vlan.c',
'nm-setting-vpn.c',
'nm-setting-vxlan.c',
'nm-setting-wimax.c',
'nm-setting-wired.c',
'nm-setting-wireless-security.c',
'nm-setting-wireless.c'
)
libnm_core_sources = libnm_core_settings_sources + files(
'crypto.c',
'crypto_' + crypto + '.c',
'nm-connection.c',
'nm-dbus-utils.c',
'nm-errors.c',
'nm-keyfile-reader.c',
'nm-keyfile-utils.c',
'nm-keyfile-writer.c',
'nm-property-compare.c',
'nm-setting.c',
'nm-simple-connection.c',
'nm-utils.c',
'nm-vpn-editor-plugin.c',
'nm-vpn-plugin-info.c'
)
enums_headers = libnm_core_headers + [version_header]
enums = 'nm-core-enum-types'
libnm_core_enums_h = gnome.mkenums(
enums + '.h',
sources: enums_headers,
identifier_prefix: nm_id_prefix,
fhead: '/* Generated by glib-mkenums. Do not edit */\n\n#ifndef __NM_CORE_ENUM_TYPES_H__\n#define __NM_CORE_ENUM_TYPES_H__\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n',
vhead: 'GType @enum_name@_get_type (void) G_GNUC_CONST;\n#define @ENUMPREFIX@_TYPE_@ENUMSHORT@ (@enum_name@_get_type ())\n',
ftail: 'G_END_DECLS\n\n#endif /* __NM_CORE_ENUM_TYPES_H__ */',
install_header: true,
install_dir: libnm_pkgincludedir
)
libnm_core_enums_c = gnome.mkenums(
enums + '.c',
sources: enums_headers,
identifier_prefix: nm_id_prefix,
fhead: '/* Generated by glib-mkenums. Do not edit */\n\n#include "config.h"\n\n#include "nm-core-enum-types.h"\n#include "nm-default.h"\n\n#include "nm-version-macros.h" \n#include "nm-connection.h" \n#include "nm-core-types.h" \n#include "nm-dbus-interface.h" \n#include "nm-errors.h" \n#include "nm-setting-8021x.h" \n#include "nm-setting-adsl.h" \n#include "nm-setting-bluetooth.h" \n#include "nm-setting-bond.h" \n#include "nm-setting-bridge-port.h" \n#include "nm-setting-bridge.h" \n#include "nm-setting-cdma.h" \n#include "nm-setting-connection.h" \n#include "nm-setting-dcb.h" \n#include "nm-setting-dummy.h" \n#include "nm-setting-generic.h" \n#include "nm-setting-gsm.h" \n#include "nm-setting-infiniband.h" \n#include "nm-setting-ip-config.h" \n#include "nm-setting-ip-tunnel.h" \n#include "nm-setting-ip4-config.h" \n#include "nm-setting-ip6-config.h" \n#include "nm-setting-macsec.h" \n#include "nm-setting-macvlan.h" \n#include "nm-setting-olpc-mesh.h" \n#include "nm-setting-ovs-bridge.h" \n#include "nm-setting-ovs-interface.h" \n#include "nm-setting-ovs-patch.h" \n#include "nm-setting-ovs-port.h" \n#include "nm-setting-ppp.h" \n#include "nm-setting-pppoe.h" \n#include "nm-setting-proxy.h" \n#include "nm-setting-serial.h" \n#include "nm-setting-team-port.h" \n#include "nm-setting-team.h" \n#include "nm-setting-tun.h" \n#include "nm-setting-user.h" \n#include "nm-setting-vlan.h" \n#include "nm-setting-vpn.h" \n#include "nm-setting-vxlan.h" \n#include "nm-setting-wimax.h" \n#include "nm-setting-wired.h" \n#include "nm-setting-wireless-security.h" \n#include "nm-setting-wireless.h" \n#include "nm-setting.h" \n#include "nm-simple-connection.h" \n#include "nm-utils.h" \n#include "nm-version.h" \n#include "nm-vpn-dbus-interface.h" \n#include "nm-vpn-editor-plugin.h" \n#include "nm-vpn-plugin-info.h" \n\n',
vhead: 'GType\n@enum_name@_get_type (void)\n{\n static volatile gsize g_define_type_id__volatile = 0;\n\n if (g_once_init_enter (&g_define_type_id__volatile))\n {\n static const G@Type@Value values[] = {\n',
vprod: ' { @VALUENAME@, "@VALUENAME@", "@valuenick@" },\n',
vtail: ' { 0, NULL, NULL }\n };\n GType g_define_type_id =\n g_@type@_register_static (g_intern_static_string ("@EnumName@"), values);\n g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);\n }\n\n return g_define_type_id__volatile;\n}\n'
)
libnm_core_enums = [libnm_core_enums_c, libnm_core_enums_h]
incs = [
top_inc,
shared_inc
]
deps = [
crypto_dep,
dl_dep,
glib_dep,
libudev_dep,
uuid_dep
]
cflags = [
'-DG_LOG_DOMAIN="libnm"',
'-DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIB',
'-DLIBEXECDIR="@0@"'.format(nm_libexecdir),
'-DLOCALEDIR="@0@"'.format(nm_localedir),
'-DNMCONFDIR="@0@"'.format(nm_pkgconfdir),
'-DNMLIBDIR="@0@"'.format(nm_pkglibdir),
'-DNMPLUGINDIR="@0@"'.format(nm_pkglibdir)
]
if enable_json_validation
deps += jansson_dep
endif
libnm_core = static_library(
'nm-core',
sources: libnm_core_sources + libnm_core_enums + shared_sources + [version_header],
include_directories: incs,
dependencies: deps,
c_args: cflags
)
enums_to_docbook = join_paths(meson.source_root(), 'tools', 'enums-to-docbook.pl')
docbooks = [
['nm-dbus-types', 'nm-dbus-interface.h', 'NetworkManager D-Bus API Types'],
['nm-vpn-dbus-types', 'nm-vpn-dbus-interface.h', 'VPN Plugin D-Bus API Types']
]
foreach docbook: docbooks
output = docbook[0] + '.xml'
xml = custom_target(
output,
input: docbook[1],
output: output,
capture: true,
command: [perl, enums_to_docbook, docbook[0], docbook[2], '@INPUT@'],
# FIXME: used to built properly api documentation
build_by_default: true
)
content_files += xml.full_path()
endforeach
if enable_tests
subdir('tests')
endif