summaryrefslogtreecommitdiffstats
path: root/src/systemd/meson.build
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 15:35:18 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 15:35:18 +0000
commitb750101eb236130cf056c675997decbac904cc49 (patch)
treea5df1a06754bdd014cb975c051c83b01c9a97532 /src/systemd/meson.build
parentInitial commit. (diff)
downloadsystemd-b750101eb236130cf056c675997decbac904cc49.tar.xz
systemd-b750101eb236130cf056c675997decbac904cc49.zip
Adding upstream version 252.22.upstream/252.22upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/systemd/meson.build')
-rw-r--r--src/systemd/meson.build103
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