From 97d90615631d80b95251f163c47d9e4e337ad8d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Mon, 28 May 2018 10:37:11 +0200 Subject: 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. --- src/nspawn/meson.build | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) (limited to 'src/nspawn') diff --git a/src/nspawn/meson.build b/src/nspawn/meson.build index 0dae12f25f..f80339b335 100644 --- a/src/nspawn/meson.build +++ b/src/nspawn/meson.build @@ -2,7 +2,7 @@ # # Copyright 2017 Zbigniew Jędrzejewski-Szmek -systemd_nspawn_sources = files(''' +libnspawn_core_sources = files(''' nspawn-cgroup.c nspawn-cgroup.h nspawn-def.h @@ -24,7 +24,6 @@ systemd_nspawn_sources = files(''' nspawn-setuid.h nspawn-stub-pid1.c nspawn-stub-pid1.h - nspawn.c '''.split()) nspawn_gperf_c = custom_target( @@ -33,13 +32,22 @@ nspawn_gperf_c = custom_target( output : 'nspawn-gperf.c', 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 += [ - [['src/nspawn/test-patch-uid.c', - 'src/nspawn/nspawn-patch-uid.c', - 'src/nspawn/nspawn-patch-uid.h'], - [libshared], + [['src/nspawn/test-patch-uid.c'], + [libnspawn_core, + libshared], [libacl], '', 'manual'], ] -- cgit v1.2.1