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>
This commit is contained in:
Paolo Bonzini 2023-05-18 16:50:00 +02:00
parent d120116b5d
commit 2019cabfee
13 changed files with 63 additions and 73 deletions

View file

@ -1,3 +1,6 @@
/packagecache
/dtc
/keycodemapdb
/libvfio-user
/slirp

@ -1 +0,0 @@
Subproject commit b6910bec11614980a21e46fbccc35934b671bd81

4
subprojects/dtc.wrap Normal file
View file

@ -0,0 +1,4 @@
[wrap-git]
url = https://gitlab.com/qemu-project/dtc.git
revision = b6910bec11614980a21e46fbccc35934b671bd81
depth = 1

@ -1 +0,0 @@
Subproject commit f5772a62ec52591ff6870b7e8ef32482371f22c6

View file

@ -0,0 +1,4 @@
[wrap-git]
url = https://gitlab.com/qemu-project/keycodemapdb.git
revision = f5772a62ec52591ff6870b7e8ef32482371f22c6
depth = 1

@ -1 +0,0 @@
Subproject commit 0b28d205572c80b568a1003db2c8f37ca333e4d7

View file

@ -0,0 +1,4 @@
[wrap-git]
url = https://gitlab.com/qemu-project/libvfio-user.git
revision = 0b28d205572c80b568a1003db2c8f37ca333e4d7
depth = 1