db860d7837
systemd is no longer an autotools package, as such, it has now been converted over to meson. Even though systemd234 has meson support, it is broken with gcc7, as such the revision bump and conversion to meson must be in a single patch. Changes include: - Change systemd from an autotools package to a generic package - Changing all the options from --enable/disable to -Doption=true/false - Remove --without-python (no longer an option) - Remove all of the ac_cv_path_ variables, and move them into CONF_OPTS with the prefix -Doption-path=/path. - Add sha256sum's for the license files. - Remove 0002-build-check-for-ln-relative.patch and add 0002-install-dont-use-ln-relative.patch in its place, the old patch relied on autotools and is no longer relevant. - Add 0004-add-false-option-for-tests.patch. With the conversion to meson, systemd no longer has the option to disable unit tests from being built. This patch re-adds the functionality. This prevents 381 files from being built, and prevents gcrypt from becoming a dependency. Signed-off-by: Adam Duskett <Adamduskett@outlook.com> Tested-by: Jérémy Rosen <jeremy.rosen@smile.fr> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Tested-by: gitlab-ci https://gitlab.com/ymorin/buildroot-ci/pipelines/15857672/builds Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
151 lines
5.9 KiB
Diff
151 lines
5.9 KiB
Diff
From ebeb780df4ca5a8e5a43da1b38492964d8817455 Mon Sep 17 00:00:00 2001
|
|
From: Adam Duskett <Adamduskett@outlook.com>
|
|
Date: Mon, 1 Jan 2018 08:01:01 -0500
|
|
Subject: [PATCH] add false option for tests
|
|
|
|
Currently there is no way to not build tests. This introduces two problems:
|
|
|
|
1) It adds a extra 381 files to compile.
|
|
2) One of these tests explicitly requires libgcrypt to be built even if systemd
|
|
is not using it.
|
|
|
|
This patch adds the option "false" to tests, adds a check around the
|
|
foreach loop that compiles the tests to see if tests is set to false,
|
|
and adds a check around finding g++ as it's only used for tests and
|
|
is not needed.
|
|
|
|
Signed-off-by: Adam Duskett <Adamduskett@outlook.com>
|
|
---
|
|
meson.build | 91 +++++++++++++++++++++++++++++--------------------------
|
|
meson_options.txt | 2 +-
|
|
2 files changed, 49 insertions(+), 44 deletions(-)
|
|
|
|
diff --git a/meson.build b/meson.build
|
|
index ddc061c..4dcdd41 100644
|
|
--- a/meson.build
|
|
+++ b/meson.build
|
|
@@ -260,10 +260,12 @@ cc = meson.get_compiler('c')
|
|
pkgconfig = import('pkgconfig')
|
|
check_compilation_sh = find_program('tools/meson-check-compilation.sh')
|
|
|
|
-cxx = find_program('c++', required : false)
|
|
-if cxx.found()
|
|
- # Used only for tests
|
|
- add_languages('cpp')
|
|
+if get_option('tests') != 'false'
|
|
+ cxx = find_program('c++', required : false)
|
|
+ if cxx.found()
|
|
+ # Used only for tests
|
|
+ add_languages('cpp')
|
|
+ endif
|
|
endif
|
|
|
|
foreach arg : ['-Wextra',
|
|
@@ -2388,48 +2390,51 @@ executable('systemd-sulogin-shell',
|
|
install_dir : rootlibexecdir)
|
|
|
|
############################################################
|
|
+if want_tests == 'false'
|
|
+ message('Not compiling because tests is set to false')
|
|
+else
|
|
+ foreach tuple : tests
|
|
+ sources = tuple[0]
|
|
+ link_with = tuple[1].length() > 0 ? tuple[1] : [libshared]
|
|
+ dependencies = tuple[2]
|
|
+ condition = tuple.length() >= 4 ? tuple[3] : ''
|
|
+ type = tuple.length() >= 5 ? tuple[4] : ''
|
|
+ defs = tuple.length() >= 6 ? tuple[5] : []
|
|
+ incs = tuple.length() >= 7 ? tuple[6] : includes
|
|
+ timeout = 30
|
|
+
|
|
+ name = sources[0].split('/')[-1].split('.')[0]
|
|
+ if type.startswith('timeout=')
|
|
+ timeout = type.split('=')[1].to_int()
|
|
+ type = ''
|
|
+ endif
|
|
|
|
-foreach tuple : tests
|
|
- sources = tuple[0]
|
|
- link_with = tuple[1].length() > 0 ? tuple[1] : [libshared]
|
|
- dependencies = tuple[2]
|
|
- condition = tuple.length() >= 4 ? tuple[3] : ''
|
|
- type = tuple.length() >= 5 ? tuple[4] : ''
|
|
- defs = tuple.length() >= 6 ? tuple[5] : []
|
|
- incs = tuple.length() >= 7 ? tuple[6] : includes
|
|
- timeout = 30
|
|
-
|
|
- name = sources[0].split('/')[-1].split('.')[0]
|
|
- if type.startswith('timeout=')
|
|
- timeout = type.split('=')[1].to_int()
|
|
- type = ''
|
|
- endif
|
|
-
|
|
- if condition == '' or conf.get(condition) == 1
|
|
- exe = executable(
|
|
- name,
|
|
- sources,
|
|
- include_directories : incs,
|
|
- link_with : link_with,
|
|
- dependencies : dependencies,
|
|
- c_args : defs,
|
|
- install_rpath : rootlibexecdir,
|
|
- install : install_tests,
|
|
- install_dir : join_paths(testsdir, type))
|
|
-
|
|
- if type == 'manual'
|
|
- message('@0@ is a manual test'.format(name))
|
|
- elif type == 'unsafe' and want_tests != 'unsafe'
|
|
- message('@0@ is an unsafe test'.format(name))
|
|
+ if condition == '' or conf.get(condition) == 1
|
|
+ exe = executable(
|
|
+ name,
|
|
+ sources,
|
|
+ include_directories : incs,
|
|
+ link_with : link_with,
|
|
+ dependencies : dependencies,
|
|
+ c_args : defs,
|
|
+ install_rpath : rootlibexecdir,
|
|
+ install : install_tests,
|
|
+ install_dir : join_paths(testsdir, type))
|
|
+
|
|
+ if type == 'manual'
|
|
+ message('@0@ is a manual test'.format(name))
|
|
+ elif type == 'unsafe' and want_tests != 'unsafe'
|
|
+ message('@0@ is an unsafe test'.format(name))
|
|
+ else
|
|
+ test(name, exe,
|
|
+ env : test_env,
|
|
+ timeout : timeout)
|
|
+ endif
|
|
else
|
|
- test(name, exe,
|
|
- env : test_env,
|
|
- timeout : timeout)
|
|
+ message('Not compiling @0@ because @1@ is not true'.format(name, condition))
|
|
endif
|
|
- else
|
|
- message('Not compiling @0@ because @1@ is not true'.format(name, condition))
|
|
- endif
|
|
-endforeach
|
|
+ endforeach
|
|
+endif
|
|
|
|
test_libsystemd_sym = executable(
|
|
'test-libsystemd-sym',
|
|
diff --git a/meson_options.txt b/meson_options.txt
|
|
index f0c0506..0caba0c 100644
|
|
--- a/meson_options.txt
|
|
+++ b/meson_options.txt
|
|
@@ -284,7 +284,7 @@ option('bashcompletiondir', type : 'string',
|
|
option('zshcompletiondir', type : 'string',
|
|
description : 'directory for zsh completion scripts ["no" disables]')
|
|
|
|
-option('tests', type : 'combo', choices : ['true', 'unsafe'],
|
|
+option('tests', type : 'combo', choices : ['true', 'unsafe', 'false'],
|
|
description : 'enable extra tests with =unsafe')
|
|
option('slow-tests', type : 'boolean', value : 'false',
|
|
description : 'run the slow tests by default')
|
|
--
|
|
2.14.3
|
|
|