meson, mkvenv: add functests custom target

add the "pyvenv_functests_group" target to meson. This target will
invoke mkvenv.py to install the associated dependency group to the
build/pyvenv directory.

A "pyvenv_tooling_group" is not included here as it is the plan to
always install this group by default, so it will not need an on-demand
trigger.

Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-ID: <20260218213416.674483-7-jsnow@redhat.com>
Signed-off-by: John Snow <jsnow@redhat.com>
This commit is contained in:
John Snow
2026-02-18 16:34:01 -05:00
parent b42ad8ef32
commit 1aa22ffee2
2 changed files with 28 additions and 0 deletions

View File

@@ -4580,6 +4580,7 @@ subdir('scripts')
subdir('tools')
subdir('pc-bios')
subdir('docs')
subdir('pyvenv')
# Tests are disabled on emscripten because they rely on host features that aren't
# supported by emscripten (e.g. fork and unix socket).
if host_os != 'emscripten'

27
pyvenv/meson.build Normal file
View File

@@ -0,0 +1,27 @@
# Note that this file only controls "optional" dependency groups; groups
# unconditionally installed at configure time are handled in configure
# instead; namely: meson, sphinx, and the tooling groups.
# Note that this command may or may not include the "--online" flag
# based on configuration.
ensuregroup_cmd = config_host['MKVENV_ENSUREGROUP'].split()
pyvenv_common_deps = files(
meson.project_source_root() + '/pythondeps.toml',
meson.project_source_root() + '/python/scripts/mkvenv.py'
)
pyvenv_wheel_dir = meson.project_source_root() + '/python/wheels'
# This group is allowed to (and must) rely on internet to fetch from
# PyPI. Force the use of the --online flag here.
pyvenv_functests_group = custom_target(
'pyvenv_functests_group',
output: 'functests.group',
input: pyvenv_common_deps,
command: ensuregroup_cmd + [
'--online',
'--dir', pyvenv_wheel_dir,
'@INPUT0@',
'functests',
],
)