[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 0/6] meson: use subprojects for bundled projects
|
From: |
Paolo Bonzini |
|
Subject: |
[PATCH v2 0/6] meson: use subprojects for bundled projects |
|
Date: |
Fri, 19 May 2023 10:56:40 +0200 |
QEMU bundles a copy of dtc and keycodemapdb. They both support meson,
so we can run their build system via subproject() instead of hardcoding
their contents.
In fact, now that QEMU's configure script knows how to install missing
Python dependencies, we can replace submodules altogether with .wrap
files, which have several advantages, either immediate or potential:
* option parsing and downloading is delegated to meson
* the commit is stored in a text file instead of a magic entry in the
git tree object, and can be a branch name or a version number as well
* we could stop shipping external dependencies that are only used as a
fallback, but not break compilation on platforms that lack them.
For example it may make sense to download dtc at build time,
controlled by --enable-download, even when building from a tarball.
This is _not_ done in this patch series, but Marc-André has tried
it before[1].
* we could also add .wrap files for other dependencies that are missing
on the GCC compile farm machines. People who build on Windows might also
enjoy getting the mandatory dependencies (pixman, zlib, glib, possibly
SDL?) via wraps.
It is possible to use subprojects also for berkeley-softfloat-3
and berkeley-testfloat-3. This would require moving the corresponding
parts of tests/fp/meson.build to an overlay file.
Paolo
[1]
https://patchew.org/QEMU/20230302131848.1527460-1-marcandre.lureau@redhat.com/20230302131848.1527460-5-marcandre.lureau@redhat.com/
Paolo Bonzini (6):
remove remaining traces of meson submodule
meson: simplify logic for -Dfdt
meson: use subproject for internal libfdt
meson: use subproject for keycodemapdb
configure: rename --enable-pypi to --enable-download, control
subprojects too
meson: subprojects: replace submodules with wrap files
.gitignore | 2 -
.gitlab-ci.d/buildtest-template.yml | 5 +-
.gitmodules | 9 ----
configure | 71 ++++++-----------------------
dtc | 1 -
meson.build | 56 ++++++-----------------
meson_options.txt | 1 +
scripts/archive-source.sh | 11 ++++-
scripts/make-release | 5 ++
subprojects/.gitignore | 6 +++
subprojects/dtc.wrap | 4 ++
subprojects/keycodemapdb.wrap | 4 ++
subprojects/libvfio-user | 1 -
subprojects/libvfio-user.wrap | 4 ++
ui/keycodemapdb | 1 -
ui/meson.build | 8 ++--
16 files changed, 68 insertions(+), 121 deletions(-)
delete mode 160000 dtc
create mode 100644 subprojects/.gitignore
create mode 100644 subprojects/dtc.wrap
create mode 100644 subprojects/keycodemapdb.wrap
delete mode 160000 subprojects/libvfio-user
create mode 100644 subprojects/libvfio-user.wrap
delete mode 160000 ui/keycodemapdb
--
2.40.1
- [PATCH v2 0/6] meson: use subprojects for bundled projects,
Paolo Bonzini <=
- [PATCH 1/6] remove remaining traces of meson submodule, Paolo Bonzini, 2023/05/19
- [PATCH 2/6] meson: simplify logic for -Dfdt, Paolo Bonzini, 2023/05/19
- [PATCH 4/6] meson: use subproject for keycodemapdb, Paolo Bonzini, 2023/05/19
- [PATCH 5/6] configure: rename --enable-pypi to --enable-download, control subprojects too, Paolo Bonzini, 2023/05/19
- [PATCH 6/6] meson: subprojects: replace submodules with wrap files, Paolo Bonzini, 2023/05/19