From: Simon McVittie Date: Fri, 24 Jun 2022 13:27:10 +0000 (+0100) Subject: subprojects: Allow expat and GLib to be built as subprojects X-Git-Tag: dbus-1.15.0~32^2~67 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4fbdb149878431e71efed1977508d00d7d77376e;p=thirdparty%2Fdbus.git subprojects: Allow expat and GLib to be built as subprojects This should let us build everything with a mingw-w64 toolchain, without having to use prebuilt dependencies from MSYS. Signed-off-by: Simon McVittie --- diff --git a/Makefile.am b/Makefile.am index 1587dc7ca..f37865e87 100644 --- a/Makefile.am +++ b/Makefile.am @@ -31,6 +31,8 @@ EXTRA_DIST = \ meson_options.txt \ meson_post_install.py \ meson_post_install_systemd.py \ + subprojects/expat.wrap \ + subprojects/glib.wrap \ test/CMakeLists.txt \ test/name-test/CMakeLists.txt \ tools/CMakeLists.txt \ diff --git a/meson.build b/meson.build index ac8ba6cfc..4c3690a22 100644 --- a/meson.build +++ b/meson.build @@ -283,7 +283,12 @@ threads = dependency('threads') config.set('HAVE_MONOTONIC_CLOCK', cc.has_header_symbol('pthread.h', 'CLOCK_MONOTONIC')) glib = dependency( - 'glib-2.0', version: '>=2.40', required: get_option('modular_tests'), + 'glib-2.0', version: '>=2.40', + required: get_option('modular_tests'), + fallback: ['glib', 'libglib_dep'], + default_options: [ + 'tests=false', + ], ) if platform_windows gio = dependency('gio-windows-2.0', required: glib.found()) @@ -294,7 +299,14 @@ use_glib = glib.found() and gio.found() config.set('DBUS_WITH_GLIB', use_glib) expat = dependency('expat') -config.set('HAVE_XML_SETHASHSALT', cc.has_function('XML_SetHashSalt', dependencies: expat)) +if expat.type_name() == 'internal' + # Configure-time checks can't act on subprojects that haven't been + # built yet, but we know that subprojects/expat.wrap is a new enough + # version to have this + config.set('HAVE_XML_SETHASHSALT', true) +else + config.set('HAVE_XML_SETHASHSALT', cc.has_function('XML_SetHashSalt', dependencies: expat)) +endif selinux = dependency('libselinux', version: '>=2.0.86', required: get_option('selinux')) diff --git a/subprojects/expat.wrap b/subprojects/expat.wrap new file mode 100644 index 000000000..26fe96774 --- /dev/null +++ b/subprojects/expat.wrap @@ -0,0 +1,14 @@ +# Copyright 2022 Meson contributors +# SPDX-License-Identifier: MIT + +[wrap-file] +directory = expat-2.4.8 +source_url = https://github.com/libexpat/libexpat/releases/download/R_2_4_8/expat-2.4.8.tar.xz +source_filename = expat-2.4.8.tar.bz2 +source_hash = f79b8f904b749e3e0d20afeadecf8249c55b2e32d4ebb089ae378df479dcaf25 +patch_filename = expat_2.4.8-1_patch.zip +patch_url = https://wrapdb.mesonbuild.com/v2/expat_2.4.8-1/get_patch +patch_hash = 9aec253a2c6d1c0feb852c5c6920298d14701eeec7acc6832bb402438b52112a + +[provide] +expat = expat_dep diff --git a/subprojects/glib.wrap b/subprojects/glib.wrap new file mode 100644 index 000000000..b01294b61 --- /dev/null +++ b/subprojects/glib.wrap @@ -0,0 +1,13 @@ +# Copyright 2022 Meson contributors +# SPDX-License-Identifier: MIT + +[wrap-file] +directory = glib-2.72.2 +source_url = https://download.gnome.org/sources/glib/2.72/glib-2.72.2.tar.xz +source_filename = glib-2.72.2.tar.xz +source_hash = 78d599a133dba7fe2036dfa8db8fb6131ab9642783fc9578b07a20995252d2de +wrapdb_version = 2.72.2-1 + +[provide] +dependency_names = gthread-2.0, gobject-2.0, gmodule-no-export-2.0, gmodule-export-2.0, gmodule-2.0, glib-2.0, gio-2.0, gio-windows-2.0, gio-unix-2.0 +program_names = glib-genmarshal, glib-mkenums, glib-compile-schemas, glib-compile-resources, gio-querymodules, gdbus-codegen diff --git a/tools/ci-install.sh b/tools/ci-install.sh index 40dde8922..48197c52e 100755 --- a/tools/ci-install.sh +++ b/tools/ci-install.sh @@ -159,6 +159,7 @@ case "$ci_distro" in ducktype g++ gcc + git gnome-desktop-testing libapparmor-dev libaudit-dev