mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-12-17 21:26:13 -07:00
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:
parent
d120116b5d
commit
2019cabfee
13 changed files with 63 additions and 73 deletions
|
|
@ -26,8 +26,8 @@ sub_file="${sub_tdir}/submodule.tar"
|
|||
# independent of what the developer currently has initialized
|
||||
# in their checkout, because the build environment is completely
|
||||
# different to the host OS.
|
||||
submodules="subprojects/dtc subprojects/keycodemapdb"
|
||||
submodules="$submodules tests/fp/berkeley-softfloat-3 tests/fp/berkeley-testfloat-3"
|
||||
subprojects="dtc keycodemapdb libvfio-user"
|
||||
submodules="tests/fp/berkeley-softfloat-3 tests/fp/berkeley-testfloat-3"
|
||||
sub_deinit=""
|
||||
|
||||
function cleanup() {
|
||||
|
|
@ -70,4 +70,11 @@ for sm in $submodules; do
|
|||
tar --concatenate --file "$tar_file" "$sub_file"
|
||||
test $? -ne 0 && error "failed append submodule $sm to $tar_file"
|
||||
done
|
||||
|
||||
for sp in $subprojects; do
|
||||
meson subprojects download $sp
|
||||
test $? -ne 0 && error "failed to download subproject $sp"
|
||||
tar --append --file "$tar_file" --exclude=.git subprojects/$sp
|
||||
test $? -ne 0 && error "failed to append subproject $sp to $tar_file"
|
||||
done
|
||||
exit 0
|
||||
|
|
|
|||
|
|
@ -16,6 +16,9 @@ if [ $# -ne 2 ]; then
|
|||
exit 0
|
||||
fi
|
||||
|
||||
# Only include wraps that are invoked with subproject()
|
||||
SUBPROJECTS="dtc libvfio-user keycodemapdb"
|
||||
|
||||
src="$1"
|
||||
version="$2"
|
||||
destination=qemu-${version}
|
||||
|
|
@ -26,6 +29,8 @@ git clone --single-branch -b "v${version}" -c advice.detachedHead=false \
|
|||
pushd ${destination}
|
||||
|
||||
git submodule update --init --single-branch
|
||||
meson subprojects download $SUBPROJECTS
|
||||
|
||||
(cd roms/seabios && git describe --tags --long --dirty > .version)
|
||||
(cd roms/skiboot && ./make_version.sh > .version)
|
||||
# Fetch edk2 submodule's submodules, since it won't have access to them via
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue