Skip to content
Snippets Groups Projects
  • Paolo Bonzini's avatar
    2019cabf
    meson: subprojects: replace submodules with wrap files · 2019cabf
    Paolo Bonzini authored
    
    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: default avatarDaniel P. Berrangé <berrange@redhat.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    2019cabf
    History
    meson: subprojects: replace submodules with wrap files
    Paolo Bonzini authored
    
    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: default avatarDaniel P. Berrangé <berrange@redhat.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
dtc.wrap 119 B
[wrap-git]
url = https://gitlab.com/qemu-project/dtc.git
revision = b6910bec11614980a21e46fbccc35934b671bd81
depth = 1