meson: *-user: only descend into *-user when configured

To increase flexibility, only descend into *-user when that is
configured. This allows *-user to selectively include directories based
on the host OS which may not exist on all hosts. Adopt Paolo's
suggestion of checking the configuration in the directories that know
about the configuration.

Message-Id: <20210926220103.1721355-2-f4bug@amsat.org>
Message-Id: <20210926220103.1721355-3-f4bug@amsat.org>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Warner Losh <wlosh@bsdimp.com>
Acked-by: Paolo Bonzini <pbonzinni@redhat.com>
Reviewed-by: Kyle Evans <kevans@FreeBSD.org>
This commit is contained in:
Warner Losh 2021-10-08 16:47:37 -06:00
parent 91a5adda15
commit dda2da6c94
3 changed files with 16 additions and 4 deletions

View File

@ -1,3 +1,7 @@
if not have_bsd_user
subdir_done()
endif
bsd_user_ss.add(files(
'bsdload.c',
'elfload.c',

View File

@ -1,3 +1,7 @@
if not have_linux_user
subdir_done()
endif
linux_user_ss.add(files(
'elfload.c',
'exit.c',

View File

@ -40,12 +40,15 @@ config_host_data = configuration_data()
genh = []
target_dirs = config_host['TARGET_DIRS'].split()
have_user = false
have_linux_user = false
have_bsd_user = false
have_system = false
foreach target : target_dirs
have_user = have_user or target.endswith('-user')
have_linux_user = have_linux_user or target.endswith('linux-user')
have_bsd_user = have_bsd_user or target.endswith('bsd-user')
have_system = have_system or target.endswith('-softmmu')
endforeach
have_user = have_linux_user or have_bsd_user
have_tools = 'CONFIG_TOOLS' in config_host
have_block = have_system or have_tools
@ -2595,10 +2598,11 @@ subdir('bsd-user')
subdir('linux-user')
subdir('ebpf')
bsd_user_ss.add(files('gdbstub.c'))
common_ss.add(libbpf)
specific_ss.add_all(when: 'CONFIG_BSD_USER', if_true: bsd_user_ss)
linux_user_ss.add(files('gdbstub.c', 'thunk.c'))
linux_user_ss.add(files('thunk.c'))
specific_ss.add_all(when: 'CONFIG_LINUX_USER', if_true: linux_user_ss)
# needed for fuzzing binaries