Files
NetworkManager/libnm-core/meson.build
Thomas Haller e01f7f2c6d build: enable building both crypto backends for tests
If the library is available, let's at least compile both
crypto backends.

That is helpful when developing on crypto backends, so that
one does not have to configure the build twice.

With autotools, the build is only run during `make check`.
Not for meson, but that is generally the case with our meson
setup, that it also builds tests during the regular build step.
2018-09-04 07:38:30 +02:00

232 lines
5.4 KiB
Meson

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-6lowpan.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-match.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-sriov.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-wpan.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-6lowpan.c',
'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-ethtool.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-match.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-sriov.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',
'nm-setting-wpan.c'
)
libnm_core_sources = libnm_core_settings_sources + files(
'nm-crypto.c',
'nm-connection.c',
'nm-dbus-utils.c',
'nm-errors.c',
'nm-keyfile.c',
'nm-keyfile-utils.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'
)
enum_headers = libnm_core_headers + [version_header]
enum_types = 'nm-core-enum-types'
libnm_core_enum = gnome.mkenums(
enum_types,
sources: enum_headers,
identifier_prefix: nm_id_prefix,
c_template: enum_types + '.c.template',
h_template: enum_types + '.h.template',
install_header: true,
install_dir: libnm_pkgincludedir
)
deps = [
dl_dep,
libudev_dep,
shared_dep,
uuid_dep,
shared_c_siphash_dep,
]
cflags = [
'-DG_LOG_DOMAIN="@0@"'.format(libnm_name),
'-DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIBNM_CORE',
]
if enable_json_validation
libnm_core_sources += files('nm-json.c')
deps += jansson_dep
endif
if (crypto_gnutls_dep.found())
libnm_crypto_gnutls = static_library(
'nm-crypto-gnutls',
sources: [ 'nm-crypto-gnutls.c' ],
dependencies: deps + [ crypto_gnutls_dep ],
c_args: cflags
)
endif
if (crypto_nss_dep.found())
libnm_crypto_nss = static_library(
'nm-crypto-nss',
sources: [ 'nm-crypto-nss.c' ],
dependencies: deps + [ crypto_nss_dep ],
c_args: cflags
)
endif
if crypto == 'gnutls'
libnm_crypto = libnm_crypto_gnutls
elif crypto == 'nss'
libnm_crypto = libnm_crypto_nss
else
error('bug')
endif
libnm_core_sources_all = libnm_core_sources
libnm_core_sources_all += libnm_core_enum
libnm_core_sources_all += shared_nm_meta_setting_c
libnm_core_sources_all += shared_nm_ethtool_utils_c
libnm_core_sources_all += shared_files_libnm_core
libnm_core_sources_all += [version_header]
libnm_core = static_library(
'nm-core',
sources: libnm_core_sources_all,
dependencies: deps,
link_with: libnm_crypto,
c_args: cflags
)
nm_core_dep = declare_dependency(
sources: libnm_core_enum[1],
include_directories: libnm_core_inc,
dependencies: [
shared_dep,
shared_c_siphash_dep,
],
)
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: gtkdoc does not depend directly on this.
# https://github.com/mesonbuild/meson/pull/2806
build_by_default: true
)
content_files += xml.full_path()
endforeach
if enable_tests
subdir('tests')
endif