| # 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 |