]> git.ipfire.org Git - thirdparty/systemd.git/blobdiff - src/systemd/meson.build
Merge pull request #17549 from yuwata/tiny-fixes
[thirdparty/systemd.git] / src / systemd / meson.build
index 16e4b3540c7fd0c6674a47f0403186e6b5405812..f585b2d75b1f17b5090ea9207d7b8c4a33e41faf 100644 (file)
@@ -1,51 +1,41 @@
-# SPDX-License-Identifier: LGPL-2.1+
-#
-# Copyright 2017 Zbigniew JÄ™drzejewski-Szmek
-#
-# systemd is free software; you can redistribute it and/or modify it
-# under the terms of the GNU Lesser General Public License as published by
-# the Free Software Foundation; either version 2.1 of the License, or
-# (at your option) any later version.
-#
-# systemd is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public License
-# along with systemd; If not, see <http://www.gnu.org/licenses/>.
+# 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)
 
-#  sd-device.h
-#  sd-hwdb.h
-#  sd-dhcp6-client.h
-#  sd-dhcp6-lease.h
-#  sd-dhcp-client.h
-#  sd-dhcp-lease.h
-#  sd-dhcp-server.h
-#  sd-ipv4acd.h
-#  sd-ipv4ll.h
-#  sd-lldp.h
-#  sd-ndisc.h
-#  sd-netlink.h
-#  sd-network.h
-#  sd-path.h
-#  sd-resolve.h
-#  sd-utf8.h
+_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,
@@ -57,20 +47,34 @@ install_headers(
 
 opts = [['c'],
         ['c', '-ansi'],
-        ['c', '-std=iso9899:1990']]
+        ['c', '-std=iso9899:1990'],
+        ['c', '-std=iso9899:2011']]
+
+if cc.has_argument('-std=iso9899:2017')
+        opts += [['c', '-std=iso9899:2017']]
+endif
 
-cxx = find_program('c++', required : false)
-if cxx.found()
-        opts += [['c++']]
+if add_languages('cpp', required : false)
+        opts += [['c++'],
+                 ['c++', '-std=c++98'],
+                 ['c++', '-std=c++11']]
+        if cc.has_argument('-std=c++14')
+                opts += [['c++', '-std=c++14']]
+        endif
+        if cc.has_argument('-std=c++17')
+                opts += [['c++', '-std=c++17']]
+        endif
 endif
 
-foreach header : _systemd_headers
+foreach header : _systemd_headers + _not_installed_headers + ['../libudev/libudev.h']
         foreach opt : opts
-                name = ''.join([header, ':'] + opt)
-                test('cc-' + name,
-                     check_compilation_sh,
-                     args : cc.cmd_array() + ['-c', '-x'] + opt +
-                            ['-Werror', '-include',
-                             join_paths(meson.current_source_dir(), header)])
+                name = ''.join(['cc-', header.split('/')[-1], ':'] + opt)
+                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