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.lur...@redhat.com/20230302131848.1527460-5-marcandre.lur...@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