1
0
mirror of https://github.com/systemd/systemd synced 2024-07-08 20:15:55 +00:00

meson: move declarations of nss modules

This commit is contained in:
Yu Watanabe 2023-06-23 11:28:22 +09:00
parent 07e43306b3
commit 2080c0978d
5 changed files with 49 additions and 59 deletions

View 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_')

View File

@ -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'),
},
]

View File

@ -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'),
},
]

View File

@ -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'),
},
]

View File

@ -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'),
},
]