NetworkManager/shared/meson.build
Thomas Haller 943dcba531 shared,core: add "nm-errno.h"
This will be our extension on top of <errno.h>.

We want to use (integer) error numbers, that can both
contain native errors from <errno.h> and our own defines,
both merge in one domain. That is, we will reserve a small
range of integers for our own defines (that hopefully won't
clash with errors from <errno.h>).

We can use this at places where GError is too cumbersome to use.

The advantage is, that our error numbers extend <errno.h> and can
be mixed.

This is what "src/platform/nm-netlink.h" already does with nl_errno(). Next,
the netlink errors from there will be merged into "nm-errno.h".

Also, platform has NMPlatformError, which are a distinct set of error
numbers. But these work differently in the sense that negative values
represent codes from <errno.h> and positive numbers are our own platform
specific defines. NMPlatformError will also be merged into "nm-errno.h".

"nm-errno.h" will unify the error handling of platform and netlink,
making it more similar to what we are used to from systemd, and give
room to extend it for our own purpose.
2018-12-27 21:30:22 +01:00

148 lines
3.8 KiB
Meson

shared_inc = include_directories('.')
shared_c_siphash = static_library(
'c-siphash',
sources: 'c-siphash/src/c-siphash.c',
)
shared_c_siphash_dep = declare_dependency(
include_directories: shared_inc,
link_with: shared_c_siphash,
)
shared_c_rbtree = static_library(
'c-rbtree',
c_args: '-std=c11',
sources: files('c-rbtree/src/c-rbtree.c',
'c-rbtree/src/c-rbtree.h',
'c-rbtree/src/c-rbtree-private.h'),
)
shared_c_rbtree_dep = declare_dependency(
include_directories: shared_inc,
link_with: shared_c_rbtree,
)
if enable_ebpf
shared_n_acd_bpf_files = files('n-acd/src/n-acd-bpf.c')
else
shared_n_acd_bpf_files = files('n-acd/src/n-acd-bpf-fallback.c')
endif
shared_n_acd = static_library(
'n-acd',
sources: files('n-acd/src/n-acd.c',
'n-acd/src/n-acd.h',
'n-acd/src/n-acd-private.h',
'n-acd/src/n-acd-probe.c',
'n-acd/src/util/timer.c',
'n-acd/src/util/timer.h')
+ shared_n_acd_bpf_files,
c_args: [
'-D_GNU_SOURCE',
'-DSO_ATTACH_BPF=50',
'-std=c11',
'-Wno-pointer-arith',
'-Wno-vla',
],
include_directories: [
include_directories('c-siphash/src'),
include_directories('c-list/src'),
include_directories('c-rbtree/src'),
],
dependencies: [
shared_c_siphash_dep,
shared_c_rbtree_dep,
],
)
shared_n_acd_dep = declare_dependency(
include_directories: shared_inc,
link_with: shared_n_acd,
)
version_conf = configuration_data()
version_conf.set('NM_MAJOR_VERSION', nm_major_version)
version_conf.set('NM_MINOR_VERSION', nm_minor_version)
version_conf.set('NM_MICRO_VERSION', nm_micro_version)
version_header = configure_file(
input: 'nm-version-macros.h.in',
output: 'nm-version-macros.h',
configuration: version_conf,
)
shared_nm_ethtool_utils_c = files('nm-ethtool-utils.c')
shared_nm_meta_setting_c = files('nm-meta-setting.c')
shared_nm_test_utils_impl_c = files('nm-test-utils-impl.c')
shared_nm_utils_nm_vpn_plugin_utils_c = files('nm-utils/nm-vpn-plugin-utils.c')
shared_files_time_utils = files('nm-utils/nm-time-utils.c')
shared_files_libnm_core = files('''
nm-utils/c-list-util.c
nm-utils/nm-dedup-multi.c
nm-utils/nm-enum-utils.c
nm-utils/nm-errno.c
nm-utils/nm-hash-utils.c
nm-utils/nm-io-utils.c
nm-utils/nm-random-utils.c
nm-utils/nm-secret-utils.c
nm-utils/nm-shared-utils.c
nm-utils/nm-udev-utils.c
'''.split())
shared_files_clients_common = files('''
nm-utils/nm-enum-utils.c
nm-utils/nm-hash-utils.c
nm-utils/nm-random-utils.c
nm-utils/nm-shared-utils.c
'''.split())
shared_files_libnm_util = files('''
nm-utils/nm-shared-utils.c
'''.split())
shared_files_libnm_glib = files('''
nm-utils/nm-udev-utils.c
'''.split())
shared_dep = declare_dependency(
include_directories: [
top_inc,
shared_inc,
],
dependencies: glib_dep,
)
###############################################################################
test_shared_general = executable(
'nm-utils/tests/test-shared-general',
[ 'nm-utils/tests/test-shared-general.c',
'nm-utils/c-list-util.c',
'nm-utils/nm-dedup-multi.c',
'nm-utils/nm-enum-utils.c',
'nm-utils/nm-hash-utils.c',
'nm-utils/nm-io-utils.c',
'nm-utils/nm-random-utils.c',
'nm-utils/nm-secret-utils.c',
'nm-utils/nm-shared-utils.c',
'nm-utils/nm-time-utils.c',
],
c_args: [
'-DNETWORKMANAGER_COMPILATION_TEST',
'-DNETWORKMANAGER_COMPILATION=(NM_NETWORKMANAGER_COMPILATION_GLIB|NM_NETWORKMANAGER_COMPILATION_WITH_GLIB_I18N_PROG)',
],
dependencies: shared_dep,
link_with: shared_c_siphash,
)
test(
'shared/nm-utils/test-shared-general',
test_script,
args: test_args + [test_shared_general.full_path()]
)