]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
meson: move declarations of nss modules
authorYu Watanabe <watanabe.yu+github@gmail.com>
Fri, 23 Jun 2023 02:28:22 +0000 (11:28 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 31 Jul 2023 13:17:34 +0000 (22:17 +0900)
meson.build
src/nss-myhostname/meson.build [new file with mode: 0644]
src/nss-mymachines/meson.build [new file with mode: 0644]
src/nss-resolve/meson.build [new file with mode: 0644]
src/nss-systemd/meson.build [new file with mode: 0644]

index 48fda2a225fd3040fde1d746bb45da10e7baf35d..bd62198ef07069b20a823aed1af5eac4239ab706 100644 (file)
@@ -2387,6 +2387,10 @@ subdir('src/login')
 subdir('src/machine')
 subdir('src/network')
 subdir('src/nspawn')
+subdir('src/nss-myhostname')
+subdir('src/nss-mymachines')
+subdir('src/nss-resolve')
+subdir('src/nss-systemd')
 subdir('src/oom')
 subdir('src/partition')
 subdir('src/portable')
@@ -2471,65 +2475,6 @@ test_dlopen = executable(
                         userspace],
         build_by_default : want_tests != 'false')
 
-foreach tuple : [['myhostname', 'ENABLE_NSS_MYHOSTNAME'],
-                 ['systemd',    'ENABLE_NSS_SYSTEMD', ['nss-systemd.h', 'userdb-glue.c', 'userdb-glue.h']],
-                 ['mymachines', 'ENABLE_NSS_MYMACHINES'],
-                 ['resolve',    'ENABLE_NSS_RESOLVE', [], resolve_includes]]
-
-        condition = tuple[1] == '' or conf.get(tuple[1]) == 1
-        if condition
-                module = tuple[0]
-
-                sym = 'src/nss-@0@/nss-@0@.sym'.format(module)
-                version_script_arg = project_source_root / sym
-
-                sources = ['src/nss-@0@/nss-@0@.c'.format(module)]
-                if tuple.length() > 2
-                        foreach s : tuple[2]
-                                sources += ['src/nss-@0@/@1@'.format(module, s)]
-                        endforeach
-                endif
-
-                incs = tuple.length() > 3 ? tuple[3] : includes
-
-                nss = shared_library(
-                        'nss_' + module,
-                        sources,
-                        version : '2',
-                        include_directories : incs,
-                        # Note that we link NSS modules with '-z nodelete' so that mempools never get orphaned
-                        link_args : ['-Wl,-z,nodelete',
-                                     '-shared',
-                                     '-Wl,--version-script=' + version_script_arg],
-                        link_with : [libsystemd_static,
-                                     libshared_static,
-                                     libbasic],
-                        dependencies : [librt,
-                                        threads,
-                                        userspace],
-                        link_depends : sym,
-                        install : true,
-                        install_tag : 'nss',
-                        install_dir : libdir)
-
-                # We cannot use shared_module because it does not support version suffix.
-                # Unfortunately shared_library insists on creating the symlink…
-                meson.add_install_script('sh', '-c',
-                                         'rm $DESTDIR@0@/libnss_@1@.so'
-                                         .format(libdir, module),
-                                         install_tag : 'nss'
-                                         )
-
-                if want_tests != 'false'
-                        test('dlopen-nss_' + module,
-                             test_dlopen,
-                             # path to dlopen must include a slash
-                             args : nss.full_path(),
-                             depends : nss)
-                endif
-        endif
-endforeach
-
 foreach dict : modules
         name = dict.get('name')
         is_nss = name.startswith('nss_')
diff --git a/src/nss-myhostname/meson.build b/src/nss-myhostname/meson.build
new file mode 100644 (file)
index 0000000..c53ab22
--- /dev/null
@@ -0,0 +1,10 @@
+# SPDX-License-Identifier: LGPL-2.1-or-later
+
+modules += [
+        nss_template + {
+                'name' : 'nss_myhostname',
+                'conditions' : ['ENABLE_NSS_MYHOSTNAME'],
+                'sources' : files('nss-myhostname.c'),
+                'link_depends' : files('nss-myhostname.sym'),
+        },
+]
diff --git a/src/nss-mymachines/meson.build b/src/nss-mymachines/meson.build
new file mode 100644 (file)
index 0000000..7b8198f
--- /dev/null
@@ -0,0 +1,10 @@
+# SPDX-License-Identifier: LGPL-2.1-or-later
+
+modules += [
+        nss_template + {
+                'name' : 'nss_mymachines',
+                'conditions' : ['ENABLE_NSS_MYMACHINES'],
+                'sources' : files('nss-mymachines.c'),
+                'link_depends' : files('nss-mymachines.sym'),
+        },
+]
diff --git a/src/nss-resolve/meson.build b/src/nss-resolve/meson.build
new file mode 100644 (file)
index 0000000..e5b65d2
--- /dev/null
@@ -0,0 +1,12 @@
+# SPDX-License-Identifier: LGPL-2.1-or-later
+
+modules += [
+        nss_template + {
+                'name' : 'nss_resolve',
+                'conditions' : ['ENABLE_NSS_RESOLVE'],
+                'sources' : files('nss-resolve.c'),
+                'link_depends' : files('nss-resolve.sym'),
+                'include_directories' : includes +
+                                        include_directories('../resolve'),
+        },
+]
diff --git a/src/nss-systemd/meson.build b/src/nss-systemd/meson.build
new file mode 100644 (file)
index 0000000..1bea171
--- /dev/null
@@ -0,0 +1,13 @@
+# SPDX-License-Identifier: LGPL-2.1-or-later
+
+modules += [
+        nss_template + {
+                'name' : 'nss_systemd',
+                'conditions' : ['ENABLE_NSS_SYSTEMD'],
+                'sources' : files(
+                        'nss-systemd.c',
+                        'userdb-glue.c',
+                ),
+                'link_depends' : files('nss-systemd.sym'),
+        },
+]