From ac4ccac740a824539a92ef397bb5efa58bd8cbe5 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Thu, 18 May 2023 16:11:29 +0200 Subject: [PATCH] configure: rename --enable-pypi to --enable-download, control subprojects too MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The behavior of --{enable,disable}-pypi is similar to that of -Dwrapmode={default,nodownload} respectively. In particular, in both cases a feature needs to be explicitly enabled for the dependency to be downloaded. So, use a single option to control both cases. Now, --enable-slirp will trigger cloning and building of libslirp if the .pc file is not found on the machine. Reviewed-by: Daniel P. Berrangé Reviewed-by: Thomas Huth Reviewed-by: Alex Bennée Signed-off-by: Paolo Bonzini --- .gitignore | 2 -- configure | 17 +++++++---------- meson.build | 12 ++++++++---- subprojects/.gitignore | 3 +++ 4 files changed, 18 insertions(+), 16 deletions(-) create mode 100644 subprojects/.gitignore diff --git a/.gitignore b/.gitignore index 1ea59f4819..61fa39967b 100644 --- a/.gitignore +++ b/.gitignore @@ -20,5 +20,3 @@ GTAGS *.swp *.patch *.gcov - -/subprojects/slirp diff --git a/configure b/configure index 92bacc756c..5227421231 100755 --- a/configure +++ b/configure @@ -266,7 +266,7 @@ bsd_user="" plugins="$default_feature" ninja="" python= -pypi="enabled" +download="enabled" bindir="bin" skip_meson=no vfio_user_server="disabled" @@ -754,9 +754,9 @@ for opt do --with-git-submodules=*) git_submodules_action="$optarg" ;; - --disable-pypi) pypi="disabled" + --disable-download) download="disabled" ;; - --enable-pypi) pypi="enabled" + --enable-download) download="enabled" ;; --enable-plugins) if test "$mingw32" = "yes"; then error_exit "TCG plugins not currently supported on Windows platforms" @@ -960,7 +960,7 @@ python="$(command -v "$python")" # - venv is allowed to use system packages; # - all setup can be performed offline; # - missing packages may be fetched from PyPI, -# unless --disable-pypi is passed. +# unless --disable-download is passed. # - pip is not installed into the venv when possible, # but ensurepip is called as a fallback when necessary. @@ -977,7 +977,7 @@ python="$python -B" mkvenv="$python ${source_path}/python/scripts/mkvenv.py" mkvenv_flags="" -if test "$pypi" = "enabled" ; then +if test "$download" = "enabled" ; then mkvenv_flags="--online" fi @@ -1000,7 +1000,7 @@ meson="$(cd pyvenv/bin; pwd)/meson" # Conditionally ensure Sphinx is installed. mkvenv_flags="" -if test "$pypi" = "enabled" -a "$docs" = "enabled" ; then +if test "$download" = "enabled" -a "$docs" = "enabled" ; then mkvenv_flags="--online" fi @@ -1940,11 +1940,8 @@ if test "$skip_meson" = no; then rm -rf meson-private meson-info meson-logs - # Prevent meson from automatically downloading wrapped subprojects when missing. - # You can use 'meson subprojects download' before running configure. - meson_option_add "--wrap-mode=nodownload" - # Built-in options + test "$download" = "disabled" && meson_option_add "--wrap-mode=nodownload" test "$bindir" != "bin" && meson_option_add "-Dbindir=$bindir" test "$default_feature" = no && meson_option_add -Dauto_features=disabled test "$static" = yes && meson_option_add -Dprefer_static=true diff --git a/meson.build b/meson.build index 4302c01923..f8af4b02e4 100644 --- a/meson.build +++ b/meson.build @@ -3985,8 +3985,15 @@ endif # Configuration summary # ######################### -# Directories +# Build environment summary_info = {} +summary_info += {'Build directory': meson.current_build_dir()} +summary_info += {'Source path': meson.current_source_dir()} +summary_info += {'GIT submodules': config_host['GIT_SUBMODULES']} +summary_info += {'Download dependencies': get_option('wrap_mode') != 'nodownload'} +summary(summary_info, bool_yn: true, section: 'Build environment') + +# Directories summary_info += {'Install prefix': get_option('prefix')} summary_info += {'BIOS directory': qemu_datadir} pathsep = targetos == 'windows' ? ';' : ':' @@ -4004,9 +4011,6 @@ else summary_info += {'local state directory': 'queried at runtime'} endif summary_info += {'Doc directory': get_option('prefix') / get_option('docdir')} -summary_info += {'Build directory': meson.current_build_dir()} -summary_info += {'Source path': meson.current_source_dir()} -summary_info += {'GIT submodules': config_host['GIT_SUBMODULES']} summary(summary_info, bool_yn: true, section: 'Directories') # Host binaries diff --git a/subprojects/.gitignore b/subprojects/.gitignore new file mode 100644 index 0000000000..7560ebb0b1 --- /dev/null +++ b/subprojects/.gitignore @@ -0,0 +1,3 @@ +/packagecache + +/slirp