| # 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-hwdb.h |
| sd-id128.h |
| sd-journal.h |
| sd-login.h |
| sd-messages.h |
| sd-path.h |
| '''.split() |
| |
| # 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.h |
| sd-ndisc.h |
| sd-netlink.h |
| sd-network.h |
| sd-radv.h |
| sd-resolve.h |
| sd-utf8.h |
| '''.split() |
| |
| install_headers( |
| systemd_headers, |
| '_sd-common.h', |
| subdir : 'systemd') |
| |
| |
| ############################################################ |
| |
| 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 add_languages('cpp', required : false) |
| 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 |
| endif |
| |
| foreach header : _systemd_headers + _not_installed_headers + [libudev_h_path] |
| foreach opt : opts |
| std_name = opt.length() == 2 ? '_'.join(opt[1].split(':')) : '' |
| name = ''.join(['cc-', header.split('/')[-1], '_', opt[0], std_name]) |
| if want_tests != 'false' |
| test(name, |
| check_compilation_sh, |
| args : cc.cmd_array() + ['-c', '-x'] + opt + |
| ['-Werror', '-include', |
| join_paths(meson.current_source_dir(), header)]) |
| endif |
| endforeach |
| endforeach |