meson: use a convenience static library for nspawn core
This makes it easier to link the nspawn implementation to the tests. Right now this just means that nspawn-patch-uid.c is not compiled twice, which is nice, but results in test-patch-uid being slightly bigger, which is not nice. But in general, we should use convenience libs to compile everything just once, as far as possible. Otherwise, once we start compiling a few files here twice, and a few file there thrice, we soon end up in a state where we are doing hundreds of extra compilations. So let's do the "right" thing, even if is might not be more efficient.
This commit is contained in:
parent
018eaf7445
commit
97d9061563
11
meson.build
11
meson.build
|
@ -1258,6 +1258,7 @@ includes = include_directories('src/basic',
|
||||||
'src/shared',
|
'src/shared',
|
||||||
'src/systemd',
|
'src/systemd',
|
||||||
'src/journal',
|
'src/journal',
|
||||||
|
'src/nspawn',
|
||||||
'src/resolve',
|
'src/resolve',
|
||||||
'src/timesync',
|
'src/timesync',
|
||||||
'src/time-wait-sync',
|
'src/time-wait-sync',
|
||||||
|
@ -2461,12 +2462,10 @@ exe = executable('systemd-nspawn',
|
||||||
'src/core/mount-setup.h',
|
'src/core/mount-setup.h',
|
||||||
'src/core/loopback-setup.c',
|
'src/core/loopback-setup.c',
|
||||||
'src/core/loopback-setup.h',
|
'src/core/loopback-setup.h',
|
||||||
include_directories : [includes, include_directories('src/nspawn')],
|
include_directories : includes,
|
||||||
link_with : [libshared],
|
link_with : [libnspawn_core,
|
||||||
dependencies : [libacl,
|
libshared],
|
||||||
libblkid,
|
dependencies : [libblkid],
|
||||||
libseccomp,
|
|
||||||
libselinux],
|
|
||||||
install_rpath : rootlibexecdir,
|
install_rpath : rootlibexecdir,
|
||||||
install : true)
|
install : true)
|
||||||
public_programs += [exe]
|
public_programs += [exe]
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
#
|
#
|
||||||
# Copyright 2017 Zbigniew Jędrzejewski-Szmek
|
# Copyright 2017 Zbigniew Jędrzejewski-Szmek
|
||||||
|
|
||||||
systemd_nspawn_sources = files('''
|
libnspawn_core_sources = files('''
|
||||||
nspawn-cgroup.c
|
nspawn-cgroup.c
|
||||||
nspawn-cgroup.h
|
nspawn-cgroup.h
|
||||||
nspawn-def.h
|
nspawn-def.h
|
||||||
|
@ -24,7 +24,6 @@ systemd_nspawn_sources = files('''
|
||||||
nspawn-setuid.h
|
nspawn-setuid.h
|
||||||
nspawn-stub-pid1.c
|
nspawn-stub-pid1.c
|
||||||
nspawn-stub-pid1.h
|
nspawn-stub-pid1.h
|
||||||
nspawn.c
|
|
||||||
'''.split())
|
'''.split())
|
||||||
|
|
||||||
nspawn_gperf_c = custom_target(
|
nspawn_gperf_c = custom_target(
|
||||||
|
@ -33,13 +32,22 @@ nspawn_gperf_c = custom_target(
|
||||||
output : 'nspawn-gperf.c',
|
output : 'nspawn-gperf.c',
|
||||||
command : [gperf, '@INPUT@', '--output-file', '@OUTPUT@'])
|
command : [gperf, '@INPUT@', '--output-file', '@OUTPUT@'])
|
||||||
|
|
||||||
systemd_nspawn_sources += [nspawn_gperf_c]
|
libnspawn_core_sources += [nspawn_gperf_c]
|
||||||
|
|
||||||
|
libnspawn_core = static_library(
|
||||||
|
'nspawn-core',
|
||||||
|
libnspawn_core_sources,
|
||||||
|
include_directories : includes,
|
||||||
|
dependencies : [libacl,
|
||||||
|
libseccomp,
|
||||||
|
libselinux])
|
||||||
|
|
||||||
|
systemd_nspawn_sources = files('nspawn.c')
|
||||||
|
|
||||||
tests += [
|
tests += [
|
||||||
[['src/nspawn/test-patch-uid.c',
|
[['src/nspawn/test-patch-uid.c'],
|
||||||
'src/nspawn/nspawn-patch-uid.c',
|
[libnspawn_core,
|
||||||
'src/nspawn/nspawn-patch-uid.h'],
|
libshared],
|
||||||
[libshared],
|
|
||||||
[libacl],
|
[libacl],
|
||||||
'', 'manual'],
|
'', 'manual'],
|
||||||
]
|
]
|
||||||
|
|
Loading…
Reference in New Issue