mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager
synced 2024-11-05 19:03:31 +00:00
1491efa5d8
Targets not depended on by anything are not useful and likely never get run.
295 lines
6.5 KiB
Meson
295 lines
6.5 KiB
Meson
libnm_glib_inc = include_directories('.')
|
|
|
|
dbus_binding_tool = find_program('dbus-binding-tool')
|
|
|
|
common_deps = [
|
|
dbus_dep,
|
|
dbus_glib_dep,
|
|
shared_dep
|
|
]
|
|
|
|
common_cflags = [
|
|
'-DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIBNM_GLIB',
|
|
]
|
|
|
|
cflags = common_cflags + [
|
|
'-DG_LOG_DOMAIN="@0@"'.format(libnm_glib_name)
|
|
]
|
|
|
|
vpn_headers = files(
|
|
'nm-vpn-plugin.h',
|
|
'nm-vpn-plugin-ui-interface.h',
|
|
'nm-vpn-plugin-utils.h'
|
|
)
|
|
|
|
headers = files(
|
|
'nm-access-point.h',
|
|
'nm-active-connection.h',
|
|
'nm-client.h',
|
|
'nm-device-adsl.h',
|
|
'nm-device-bond.h',
|
|
'nm-device-bridge.h',
|
|
'nm-device-bt.h',
|
|
'nm-device-ethernet.h',
|
|
'nm-device-generic.h',
|
|
'nm-device.h',
|
|
'nm-device-infiniband.h',
|
|
'nm-device-modem.h',
|
|
'nm-device-olpc-mesh.h',
|
|
'nm-device-team.h',
|
|
'nm-device-vlan.h',
|
|
'nm-device-wifi.h',
|
|
'nm-device-wimax.h',
|
|
'nm-dhcp4-config.h',
|
|
'nm-dhcp6-config.h',
|
|
'nm-ip4-config.h',
|
|
'nm-ip6-config.h',
|
|
'nm-object.h',
|
|
'nm-remote-connection.h',
|
|
'nm-remote-settings.h',
|
|
'nm-secret-agent.h',
|
|
'nm-types.h',
|
|
'nm-vpn-connection.h',
|
|
'nm-wimax-nsp.h'
|
|
)
|
|
|
|
deprecated_headers = files('libnm_glib.h')
|
|
|
|
install_headers(
|
|
headers + vpn_headers + deprecated_headers,
|
|
subdir: libnm_glib_name
|
|
)
|
|
|
|
libdeprecated_nm_glib = static_library(
|
|
'deprecated-nm-glib',
|
|
sources: 'libnm_glib.c',
|
|
include_directories: libnm_util_inc,
|
|
dependencies: common_deps,
|
|
c_args: cflags + [
|
|
'-Wno-deprecated-declarations',
|
|
'-Wno-deprecated',
|
|
],
|
|
)
|
|
|
|
sources = files(
|
|
'nm-vpn-plugin.c',
|
|
'nm-vpn-plugin-ui-interface.c',
|
|
'nm-vpn-plugin-utils.c'
|
|
)
|
|
|
|
glue = 'nm-vpn-plugin-glue.h'
|
|
|
|
enum_types = 'nm-vpn-enum-types'
|
|
|
|
libnm_glib_vpn_enum = gnome.mkenums(
|
|
enum_types,
|
|
sources: vpn_headers,
|
|
identifier_prefix: nm_id_prefix,
|
|
c_template: enum_types + '.c.template',
|
|
h_template: enum_types + '.h.template',
|
|
install_header: true,
|
|
install_dir: libnm_glib_pkgincludedir
|
|
)
|
|
|
|
deps = common_deps + [libnm_util_dep]
|
|
|
|
linker_script = join_paths(meson.current_source_dir(), 'libnm-glib-vpn.ver')
|
|
|
|
libnm_glib_vpn = shared_library(
|
|
'nm-glib-vpn',
|
|
sources: files(
|
|
'nm-vpn-plugin.c',
|
|
'nm-vpn-plugin-ui-interface.c',
|
|
'nm-vpn-plugin-utils.c',
|
|
) + [
|
|
custom_target(
|
|
glue,
|
|
input: ifaces_vpn_plugin_xml,
|
|
output: glue,
|
|
command: [dbus_binding_tool, '--prefix=nm_vpn_plugin', '--mode=glib-server', '--output=@OUTPUT@', '@INPUT@'],
|
|
),
|
|
] + libnm_glib_vpn_enum,
|
|
version: libnm_glib_vpn_version,
|
|
dependencies: deps,
|
|
c_args: cflags,
|
|
link_args: [
|
|
'-Wl,--version-script,@0@'.format(linker_script),
|
|
],
|
|
link_depends: linker_script,
|
|
install: true
|
|
)
|
|
|
|
libnm_glib_vpn_dep = declare_dependency(
|
|
include_directories: libnm_glib_inc,
|
|
link_with: libnm_glib_vpn
|
|
)
|
|
|
|
pkg.generate(
|
|
libraries: libnm_glib_vpn,
|
|
version: nm_version,
|
|
name: libnm_glib_vpn_name,
|
|
description: 'Convenience library for NetworkManager VPN plugins',
|
|
filebase: libnm_glib_vpn_name,
|
|
subdirs: libnm_glib_name,
|
|
requires: 'NetworkManager >= ' + nm_version + ' glib-2.0 dbus-glib-1',
|
|
variables: 'exec_prefix=${prefix}'
|
|
)
|
|
|
|
libnm_glib_sources = shared_files_libnm_glib + files(
|
|
'nm-access-point.c',
|
|
'nm-active-connection.c',
|
|
'nm-client.c',
|
|
'nm-dbus-helpers.c',
|
|
'nm-device-adsl.c',
|
|
'nm-device-bond.c',
|
|
'nm-device-bridge.c',
|
|
'nm-device-bt.c',
|
|
'nm-device.c',
|
|
'nm-device-ethernet.c',
|
|
'nm-device-generic.c',
|
|
'nm-device-infiniband.c',
|
|
'nm-device-olpc-mesh.c',
|
|
'nm-device-modem.c',
|
|
'nm-device-team.c',
|
|
'nm-device-vlan.c',
|
|
'nm-device-wifi.c',
|
|
'nm-device-wimax.c',
|
|
'nm-dhcp4-config.c',
|
|
'nm-dhcp6-config.c',
|
|
'nm-ip4-config.c',
|
|
'nm-ip6-config.c',
|
|
'nm-object.c',
|
|
'nm-object-cache.c',
|
|
'nm-remote-connection.c',
|
|
'nm-remote-settings.c',
|
|
'nm-secret-agent.c',
|
|
'nm-types.c',
|
|
'nm-vpn-connection.c',
|
|
'nm-wimax-nsp.c'
|
|
)
|
|
|
|
glue = 'nm-secret-agent-glue.h'
|
|
|
|
nm_secret_agent_glue = custom_target(
|
|
glue,
|
|
input: ifaces_secret_agent_xml,
|
|
output: glue,
|
|
command: [dbus_binding_tool, '--prefix=nm_secret_agent', '--mode=glib-server', '--output=@OUTPUT@', '@INPUT@']
|
|
)
|
|
|
|
enum_types = 'nm-glib-enum-types'
|
|
|
|
libnm_glib_enum = gnome.mkenums(
|
|
enum_types,
|
|
sources: headers,
|
|
identifier_prefix: nm_id_prefix,
|
|
c_template: enum_types + '.c.template',
|
|
h_template: enum_types + '.h.template',
|
|
install_header: true,
|
|
install_dir: libnm_glib_pkgincludedir
|
|
)
|
|
|
|
deps = common_deps + [
|
|
libnm_util_dep,
|
|
libudev_dep
|
|
]
|
|
|
|
linker_script = join_paths(meson.current_source_dir(), 'libnm-glib.ver')
|
|
|
|
libnm_glib = shared_library(
|
|
'nm-glib',
|
|
sources: libnm_glib_sources + libnm_glib_enum + [nm_secret_agent_glue],
|
|
version: libnm_glib_version,
|
|
dependencies: deps,
|
|
c_args: cflags,
|
|
link_whole: libdeprecated_nm_glib,
|
|
link_args: [
|
|
'-Wl,--version-script,@0@'.format(linker_script),
|
|
],
|
|
link_depends: linker_script,
|
|
install: true
|
|
)
|
|
|
|
libnm_glib_dep = declare_dependency(
|
|
include_directories: libnm_glib_inc,
|
|
link_with: libnm_glib
|
|
)
|
|
|
|
pkg.generate(
|
|
libraries: libnm_glib,
|
|
version: nm_version,
|
|
name: libnm_glib_name,
|
|
description: 'Convenience library for clients of NetworkManager',
|
|
filebase: libnm_glib_name,
|
|
subdirs: libnm_glib_name,
|
|
requires: 'libnm-util >= ' + nm_version + ' NetworkManager >= ' + nm_version + ' gobject-2.0 dbus-glib-1',
|
|
variables: 'exec_prefix=${prefix}'
|
|
)
|
|
|
|
if enable_introspection
|
|
gir_sources = libnm_glib_sources + headers + libnm_glib_enum
|
|
|
|
deps = [
|
|
dbus_glib_dep,
|
|
libnm_glib_dep,
|
|
libnm_util_gir_dep
|
|
]
|
|
|
|
gir_includes = [
|
|
'DBusGLib-1.0',
|
|
'Gio-2.0'
|
|
]
|
|
|
|
libnm_glib_gir = gnome.generate_gir(
|
|
libnm_glib,
|
|
sources: gir_sources,
|
|
dependencies: deps,
|
|
nsversion: nm_gir_version,
|
|
namespace: 'NMClient',
|
|
identifier_prefix: nm_id_prefix,
|
|
symbol_prefix: nm_id_prefix.to_lower(),
|
|
export_packages: [libnm_glib_name, libnm_glib_vpn_name],
|
|
includes: gir_includes,
|
|
extra_args: cflags + [
|
|
'--include-uninstalled=' + libnm_util_gir[0].full_path(),
|
|
],
|
|
install: true
|
|
)
|
|
endif
|
|
|
|
name = libnm_glib_name + '-test'
|
|
|
|
deps = common_deps + [libnm_util_dep]
|
|
|
|
executable(
|
|
name,
|
|
name + '.c',
|
|
dependencies: deps,
|
|
c_args: cflags,
|
|
link_with: libnm_glib
|
|
)
|
|
|
|
test(
|
|
'check-local-exports-' + libnm_glib_name,
|
|
check_exports,
|
|
args: [libnm_glib.full_path(), linker_script],
|
|
)
|
|
|
|
if enable_tests
|
|
subdir('tests')
|
|
endif
|
|
|
|
pkg.generate(
|
|
version: nm_version,
|
|
name: nm_name,
|
|
description: 'System for maintaining active network connection',
|
|
filebase: nm_name,
|
|
subdirs: nm_name,
|
|
requires: '',
|
|
variables: [
|
|
'exec_prefix=${prefix}',
|
|
'libgnome_serverdir=' + nm_libexecdir,
|
|
'plugindir=' + nm_vpndir,
|
|
'configdir=' + nm_pkgconfdir
|
|
]
|
|
)
|