diff options
author | Dylan Van Assche <me@dylanvanassche.be> | 2022-07-25 09:18:29 +0200 |
---|---|---|
committer | Dylan Van Assche <me@dylanvanassche.be> | 2022-07-25 11:01:51 +0200 |
commit | ba96ccc61587b7b6c31b94826ee7a3c44d795364 (patch) | |
tree | 6924ba6a4cd89c8500a9e7826074df5b23616b65 | |
parent | 041f53af8b138fda6242ad1381fd3cd1c2ff6c81 (diff) | |
download | ModemManager-ba96ccc61587b7b6c31b94826ee7a3c44d795364.tar.gz |
build: make tests optional
Add a meson option -Dtests and --without-tests automake option
to disable the compilation of all available testcases.
This is useful for compiling projects with Flatpak such as
GNOME Control Center which disables all possible integrations since they
only need the DBus part of ModemManager.
Contributes to https://gitlab.gnome.org/GNOME/gnome-control-center/-/merge_requests/1392
-rw-r--r-- | Makefile.am | 5 | ||||
-rw-r--r-- | configure.ac | 17 | ||||
-rw-r--r-- | data/Makefile.am | 9 | ||||
-rw-r--r-- | data/meson.build | 4 | ||||
-rw-r--r-- | introspection/meson.build | 4 | ||||
-rw-r--r-- | libmm-glib/meson.build | 4 | ||||
-rw-r--r-- | meson.build | 18 | ||||
-rw-r--r-- | meson_options.txt | 2 | ||||
-rw-r--r-- | src/meson.build | 4 |
9 files changed, 57 insertions, 10 deletions
diff --git a/Makefile.am b/Makefile.am index 4dd7ad63b..4263061c7 100644 --- a/Makefile.am +++ b/Makefile.am @@ -12,12 +12,15 @@ SUBDIRS = \ cli \ vapi \ introspection \ - test \ tools \ examples \ docs \ $(NULL) +if WITH_TESTS +SUBDIRS += test +endif + ChangeLog: $(AM_V_GEN) if test -d "$(srcdir)/.git"; then \ (GIT_DIR=$(top_srcdir)/.git $(top_srcdir)/missing --run git log --stat) | fmt --split-only > $@.tmp \ diff --git a/configure.ac b/configure.ac index d4580a31e..bb8a75fbb 100644 --- a/configure.ac +++ b/configure.ac @@ -252,6 +252,21 @@ case $with_udev in esac dnl----------------------------------------------------------------------------- +dnl build with tests (enabled by default) +dnl + +AC_ARG_WITH(tests, AS_HELP_STRING([--without-tests], [Build without testcases]), [], [with_tests=yes]) +AM_CONDITIONAL(WITH_TESTS, test "x$with_tests" = "xyes") +case $with_tests in + yes) + AC_DEFINE(WITH_TESTS, 1, [Define if you want to build all testcases]) + ;; + *) + with_tests=no + ;; +esac + +dnl----------------------------------------------------------------------------- dnl Suspend/resume support dnl @@ -629,6 +644,7 @@ examples/sms-python/Makefile examples/network-scan-python/Makefile examples/sms-c/Makefile ]) + AC_OUTPUT echo " @@ -643,6 +659,7 @@ echo " warn ldflags: ${WARN_LDFLAGS} maintainer mode: ${USE_MAINTAINER_MODE} release: ${ax_is_release} + tests: ${with_tests} System paths: prefix: ${prefix} diff --git a/data/Makefile.am b/data/Makefile.am index 12330e27d..640d2b24d 100644 --- a/data/Makefile.am +++ b/data/Makefile.am @@ -1,5 +1,12 @@ -SUBDIRS = . dispatcher-connection dispatcher-fcc-unlock tests +SUBDIRS = \ + . \ + dispatcher-connection \ + dispatcher-fcc-unlock + +if WITH_TESTS +SUBDIRS += tests +endif edit = @sed \ -e 's|@sbindir[@]|$(sbindir)|g' \ diff --git a/data/meson.build b/data/meson.build index d2a36b7e6..7063d00e6 100644 --- a/data/meson.build +++ b/data/meson.build @@ -1,7 +1,9 @@ # SPDX-License-Identifier: GPL-2.0-or-later # Copyright (C) 2021 IƱigo Martinez <inigomartinez@gmail.com> -subdir('tests') +if enable_tests + subdir('tests') +endif service_conf = { 'sbindir': mm_prefix / mm_sbindir, diff --git a/introspection/meson.build b/introspection/meson.build index b1da7ee56..6f45c185e 100644 --- a/introspection/meson.build +++ b/introspection/meson.build @@ -3,7 +3,9 @@ # DBus Introspection files mm_ifaces_all = files('all.xml') -mm_ifaces_test = files('tests/org.freedesktop.ModemManager1.Test.xml') +if enable_tests + mm_ifaces_test = files('tests/org.freedesktop.ModemManager1.Test.xml') +endif mm_ifaces = files('org.freedesktop.ModemManager1.xml') diff --git a/libmm-glib/meson.build b/libmm-glib/meson.build index 645184399..42f8ac612 100644 --- a/libmm-glib/meson.build +++ b/libmm-glib/meson.build @@ -196,4 +196,6 @@ if enable_gir endif endif -subdir('tests') +if enable_tests + subdir('tests') +endif diff --git a/meson.build b/meson.build index f656d357a..0f6ae4099 100644 --- a/meson.build +++ b/meson.build @@ -88,6 +88,9 @@ cc_args = cc.get_supported_arguments([ '-Wno-missing-field-initializers', ]) +# tests are enabled by default +enable_tests = get_option('tests') + # strict flags to use in debug builds if get_option('buildtype').contains('debug') cc_args += cc.get_supported_arguments([ @@ -266,7 +269,9 @@ if dist_version != '' config_h.set('MM_DIST_VERSION', dist_version) endif -util_dep = cc.find_library('util') +if enable_tests + util_dep = cc.find_library('util') +endif # introspection support enable_gir = get_option('introspection') @@ -376,14 +381,19 @@ subdir('introspection') subdir('include') subdir('libqcdm/src') -subdir('libqcdm/tests') +if enable_tests + subdir('libqcdm/tests') +endif subdir('libmm-glib') subdir('src') subdir('plugins') subdir('cli') -subdir('test') -subdir('tools/tests') + +if enable_tests + subdir('test') + subdir('tools/tests') +endif subdir('examples/sms-c') diff --git a/meson_options.txt b/meson_options.txt index fa8d209eb..da105e1d5 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -4,6 +4,8 @@ option('udev', type: 'boolean', value: true, description: 'enable udev support') option('udevdir', type: 'string', value: '', description: 'udev base directory') +option('tests', type: 'boolean', value: true, description: 'enable tests') + option('dbus_policy_dir', type: 'string', value: '', description: 'd-bus system policy directory') option('systemdsystemunitdir', type: 'string', value: '', description: 'systemd system units directory') diff --git a/src/meson.build b/src/meson.build index 2d1faed7d..fdcfdebd9 100644 --- a/src/meson.build +++ b/src/meson.build @@ -329,4 +329,6 @@ install_data( install_dir: udev_rulesdir, ) -subdir('tests') +if enable_tests + subdir('tests') +endif |