]> git.proxmox.com Git - mirror_qemu.git/commit
meson: subprojects: replace submodules with wrap files
authorPaolo Bonzini <pbonzini@redhat.com>
Thu, 18 May 2023 14:50:00 +0000 (16:50 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Tue, 6 Jun 2023 14:30:01 +0000 (16:30 +0200)
commit2019cabfee08dd49c28359b6fd0bac63fb12df9b
tree97d332166364fecde526bf2729119dd4e7b3781b
parentd120116b5d6e81831332f807028a29c5e5815a6a
meson: subprojects: replace submodules with wrap files

Compared to submodules, .wrap files have several advantages:

* 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

* 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.  Right now,
  this patch does the opposite: make-release treats dtc like libvfio-user
  (which is not stable API and therefore hasn't found its way into any
  distros) and keycodemap (which is a copylib, for better or worse).

dependency() can fall back to a wrap automatically.  However, this
is only possible for libraries that come with a .pc file, and this
is not very common for libfdt even though the upstream project in
principle provides it; it also removes the control that we provide with
--enable-fdt={system,internal}.  Therefore, the logic to pick system
vs. internal libfdt is left untouched.

--enable-fdt=git is removed; it was already a synonym for
--enable-fdt=internal.

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
13 files changed:
.gitlab-ci.d/buildtest-template.yml
.gitmodules
configure
meson.build
scripts/archive-source.sh
scripts/make-release
subprojects/.gitignore
subprojects/dtc [deleted submodule]
subprojects/dtc.wrap [new file with mode: 0644]
subprojects/keycodemapdb [deleted submodule]
subprojects/keycodemapdb.wrap [new file with mode: 0644]
subprojects/libvfio-user [deleted submodule]
subprojects/libvfio-user.wrap [new file with mode: 0644]