qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/6] meson: use subprojects for bundled projects
@ 2023-05-19  8:56 Paolo Bonzini
  2023-05-19  8:56 ` [PATCH 1/6] remove remaining traces of meson submodule Paolo Bonzini
                   ` (7 more replies)
  0 siblings, 8 replies; 22+ messages in thread
From: Paolo Bonzini @ 2023-05-19  8:56 UTC (permalink / raw)
  To: qemu-devel; +Cc: marcandre.lureau, berrange, richard.henderson, peter.maydell

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



^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2023-05-24  7:51 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-05-19  8:56 [PATCH v2 0/6] meson: use subprojects for bundled projects Paolo Bonzini
2023-05-19  8:56 ` [PATCH 1/6] remove remaining traces of meson submodule Paolo Bonzini
2023-05-19  9:02   ` Daniel P. Berrangé
2023-05-19  8:56 ` [PATCH 2/6] meson: simplify logic for -Dfdt Paolo Bonzini
2023-05-19  9:04   ` Daniel P. Berrangé
2023-05-19  8:56 ` [PATCH 3/6] meson: use subproject for internal libfdt Paolo Bonzini
2023-05-19  9:05   ` Daniel P. Berrangé
2023-05-19  8:56 ` [PATCH 4/6] meson: use subproject for keycodemapdb Paolo Bonzini
2023-05-19  9:06   ` Daniel P. Berrangé
2023-05-19  8:56 ` [PATCH 5/6] configure: rename --enable-pypi to --enable-download, control subprojects too Paolo Bonzini
2023-05-19  9:07   ` Daniel P. Berrangé
2023-05-19  8:56 ` [PATCH 6/6] meson: subprojects: replace submodules with wrap files Paolo Bonzini
2023-05-19  9:25   ` Daniel P. Berrangé
2023-05-19  9:36     ` Paolo Bonzini
2023-05-19  9:21 ` [PATCH v2 0/6] meson: use subprojects for bundled projects Peter Maydell
2023-05-19  9:28   ` Paolo Bonzini
2023-05-19  9:32   ` Daniel P. Berrangé
2023-05-19  9:38     ` Peter Maydell
2023-05-19  9:40     ` Paolo Bonzini
2023-05-19 11:48     ` Paolo Bonzini
2023-05-24  7:51       ` Thomas Huth
2023-05-19  9:30 ` Peter Maydell

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).