diff options
Diffstat (limited to 'src/systemd/meson.build')
-rw-r--r-- | src/systemd/meson.build | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/src/systemd/meson.build b/src/systemd/meson.build new file mode 100644 index 0000000..5a8760d --- /dev/null +++ b/src/systemd/meson.build @@ -0,0 +1,103 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later + +_systemd_headers = [ + 'sd-bus.h', + 'sd-bus-protocol.h', + 'sd-bus-vtable.h', + 'sd-daemon.h', + 'sd-device.h', + 'sd-event.h', + 'sd-gpt.h', + 'sd-hwdb.h', + 'sd-id128.h', + 'sd-journal.h', + 'sd-login.h', + 'sd-messages.h', + 'sd-path.h', +] + +# https://github.com/mesonbuild/meson/issues/1633 +systemd_headers = files(_systemd_headers) + +_not_installed_headers = [ + 'sd-dhcp6-client.h', + 'sd-dhcp6-lease.h', + 'sd-dhcp-client.h', + 'sd-dhcp-lease.h', + 'sd-dhcp-option.h', + 'sd-dhcp6-option.h', + 'sd-dhcp-server.h', + 'sd-ipv4acd.h', + 'sd-ipv4ll.h', + 'sd-lldp-rx.h', + 'sd-lldp-tx.h', + 'sd-lldp.h', + 'sd-ndisc.h', + 'sd-netlink.h', + 'sd-network.h', + 'sd-radv.h', + 'sd-resolve.h', +] + +install_headers( + systemd_headers, + '_sd-common.h', + subdir : 'systemd') + +############################################################ + +if want_tests == 'false' + subdir_done() +endif + +opts = [['c'], + ['c', '-ansi'], + ['c', '-std=iso9899:1990'], + ['c', '-std=iso9899:2011']] + +if cc.has_argument('-std=iso9899:2017') + opts += [['c', '-std=iso9899:2017']] +endif + +if cc.has_argument('-std=c2x') + opts += [['c', '-std=c2x']] +endif + +if cxx_cmd != '' + opts += [['c++'], + ['c++', '-std=c++98'], + ['c++', '-std=c++11']] + if cxx.has_argument('-std=c++14') + opts += [['c++', '-std=c++14']] + endif + if cxx.has_argument('-std=c++17') + opts += [['c++', '-std=c++17']] + endif + if cxx.has_argument('-std=c++20') + opts += [['c++', '-std=c++20']] + endif + if cxx.has_argument('-std=c++23') + opts += [['c++', '-std=c++23']] + endif +endif + +foreach header : _systemd_headers + _not_installed_headers + [libudev_h_path] + foreach opt : opts + std_name = opt.length() == 2 ? '_'.join(opt[1].split(':')) : '' + test('cc-' + header.split('/')[-1] + '_' + opt[0] + std_name, + env, + suite : 'headers', + args : [cc.cmd_array(), + '-c', + '-x', opt, + '-Wall', + '-Wextra', + '-Werror', + '-pedantic', + '-Wno-long-long', + '-Wno-variadic-macros', + '-include', meson.current_source_dir() / header, + '-o/dev/null', + '/dev/null']) + endforeach +endforeach |