From 2080c0978d90e1d5989b091df1f3be3926384bd4 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Fri, 23 Jun 2023 11:28:22 +0900 Subject: [PATCH] meson: move declarations of nss modules --- meson.build | 63 +++------------------------------- src/nss-myhostname/meson.build | 10 ++++++ src/nss-mymachines/meson.build | 10 ++++++ src/nss-resolve/meson.build | 12 +++++++ src/nss-systemd/meson.build | 13 +++++++ 5 files changed, 49 insertions(+), 59 deletions(-) create mode 100644 src/nss-myhostname/meson.build create mode 100644 src/nss-mymachines/meson.build create mode 100644 src/nss-resolve/meson.build create mode 100644 src/nss-systemd/meson.build diff --git a/meson.build b/meson.build index 48fda2a225..bd62198ef0 100644 --- a/meson.build +++ b/meson.build @@ -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 index 0000000000..c53ab22dbc --- /dev/null +++ b/src/nss-myhostname/meson.build @@ -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 index 0000000000..7b8198fe37 --- /dev/null +++ b/src/nss-mymachines/meson.build @@ -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 index 0000000000..e5b65d256a --- /dev/null +++ b/src/nss-resolve/meson.build @@ -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 index 0000000000..1bea17156e --- /dev/null +++ b/src/nss-systemd/meson.build @@ -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'), + }, +]