]> git.proxmox.com Git - mirror_qemu.git/commitdiff
meson: use subproject for internal libfdt
authorPaolo Bonzini <pbonzini@redhat.com>
Thu, 18 May 2023 12:07:22 +0000 (12:07 +0000)
committerPaolo Bonzini <pbonzini@redhat.com>
Fri, 26 May 2023 10:34:18 +0000 (12:34 +0200)
Recent dtc/libfdt can use either Make or meson as the build system.
By using a subproject, our own meson.build can remove the hard
coded list of source files.

This is also the first step towards managing downloads with .wrap
files instead of submodule.

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
.gitmodules
configure
dtc [deleted submodule]
meson.build
scripts/archive-source.sh
subprojects/dtc [new submodule]

index 2a3a12033c4b0afc81ed811fc8f86940f10b6023..3ed5d073d63082b6efab19e8461211501f4a4fa2 100644 (file)
@@ -13,8 +13,8 @@
 [submodule "roms/qemu-palcode"]
        path = roms/qemu-palcode
        url = https://gitlab.com/qemu-project/qemu-palcode.git
-[submodule "dtc"]
-       path = dtc
+[submodule "subprojects/dtc"]
+       path = subprojects/dtc
        url = https://gitlab.com/qemu-project/dtc.git
 [submodule "roms/u-boot"]
        path = roms/u-boot
index 9cdce69b7852181802d52fb71779de8cecfc1daf..d42bbd07310be41f7bf97621c479364acfc4a0bb 100755 (executable)
--- a/configure
+++ b/configure
@@ -1187,7 +1187,7 @@ fi
 case "$fdt" in
   auto | enabled | internal)
     # Simpler to always update submodule, even if not needed.
-    git_submodules="${git_submodules} dtc"
+    git_submodules="${git_submodules} subprojects/dtc"
     ;;
 esac
 
diff --git a/dtc b/dtc
deleted file mode 160000 (submodule)
index b6910be..0000000
--- a/dtc
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit b6910bec11614980a21e46fbccc35934b671bd81
index 218428841d3638530759e2594f094ee780a1003e..884b16c7496296be5729a0131099c09b42be7899 100644 (file)
@@ -3088,26 +3088,10 @@ if fdt_required.length() > 0 or fdt_opt == 'enabled'
       error('libfdt source not found - please pull git submodule')
     endif
 
-    fdt_files = files(
-      'dtc/libfdt/fdt.c',
-      'dtc/libfdt/fdt_ro.c',
-      'dtc/libfdt/fdt_wip.c',
-      'dtc/libfdt/fdt_sw.c',
-      'dtc/libfdt/fdt_rw.c',
-      'dtc/libfdt/fdt_strerror.c',
-      'dtc/libfdt/fdt_empty_tree.c',
-      'dtc/libfdt/fdt_addresses.c',
-      'dtc/libfdt/fdt_overlay.c',
-      'dtc/libfdt/fdt_check.c',
-    )
-
-    fdt_inc = include_directories('dtc/libfdt')
-    libfdt = static_library('fdt',
-                            build_by_default: false,
-                            sources: fdt_files,
-                            include_directories: fdt_inc)
-    fdt = declare_dependency(link_with: libfdt,
-                             include_directories: fdt_inc)
+    libfdt_proj = subproject('dtc', required: true,
+                             default_options: ['tools=false',  'yaml=disabled',
+                                               'python=disabled', 'default_library=static'])
+    fdt = libfdt_proj.get_variable('libfdt_dep')
   endif
 else
   fdt_opt = 'disabled'
index c035329154710c64c241225571d9f4dd29666374..a7c2886334f0f5182de0bd8411481e70f6e5a8ae 100755 (executable)
@@ -26,7 +26,7 @@ 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="dtc ui/keycodemapdb"
+submodules="subprojects/dtc ui/keycodemapdb"
 submodules="$submodules tests/fp/berkeley-softfloat-3 tests/fp/berkeley-testfloat-3"
 sub_deinit=""
 
diff --git a/subprojects/dtc b/subprojects/dtc
new file mode 160000 (submodule)
index 0000000..b6910be
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit b6910bec11614980a21e46fbccc35934b671bd81