From fea9f6918a6647430f4e22ca908f074b3e93e489 Mon Sep 17 00:00:00 2001 From: "Florian \"sp1rit\"​" Date: Wed, 11 Jun 2025 19:10:12 +0200 Subject: vala: Also add --target-glib if glib is built as subproject Previously, meson would only check if glib was part of target.external_dependencies and add --target-glib appropriately. This however had the downside of meson not adding --target-glib if glib was included as a subproject, potentially breaking otherwise builds. Instead of checking external_dependencies, check target.added_deps for an occurrence of 'glib-2.0' and then pick the appropriate codepath (either from the external dependency based on version_reqs or for the internal dependency based on the actual version, potentially downgraded to the latest release version) Related-to: #14694 --- test cases/unit/129 vala internal glib/lib.vala | 3 +++ test cases/unit/129 vala internal glib/meson.build | 21 +++++++++++++++++++++ .../unit/129 vala internal glib/meson.options | 1 + 3 files changed, 25 insertions(+) create mode 100644 test cases/unit/129 vala internal glib/lib.vala create mode 100644 test cases/unit/129 vala internal glib/meson.build create mode 100644 test cases/unit/129 vala internal glib/meson.options (limited to 'test cases/unit') diff --git a/test cases/unit/129 vala internal glib/lib.vala b/test cases/unit/129 vala internal glib/lib.vala new file mode 100644 index 000000000..e62e63234 --- /dev/null +++ b/test cases/unit/129 vala internal glib/lib.vala @@ -0,0 +1,3 @@ +public int func() { + return 42; +} diff --git a/test cases/unit/129 vala internal glib/meson.build b/test cases/unit/129 vala internal glib/meson.build new file mode 100644 index 000000000..947908200 --- /dev/null +++ b/test cases/unit/129 vala internal glib/meson.build @@ -0,0 +1,21 @@ +project('vala internal glib') + +if not add_languages('vala', required: false) + error('MESON_SKIP_TEST valac not installed') +endif + +glib_ver = get_option('glib-version') +if glib_ver == 'unset' + error('Required to set -Dglib-version') +endif + +glib_dep = declare_dependency(version: glib_ver) +meson.override_dependency('glib-2.0', glib_dep) + +named_glib_dep = dependency('glib-2.0') + +assert(named_glib_dep.type_name() == 'internal') +assert(glib_dep == named_glib_dep) + +tgt = static_library('vala-tgt', 'lib.vala', + dependencies: named_glib_dep) diff --git a/test cases/unit/129 vala internal glib/meson.options b/test cases/unit/129 vala internal glib/meson.options new file mode 100644 index 000000000..f8a1ecee3 --- /dev/null +++ b/test cases/unit/129 vala internal glib/meson.options @@ -0,0 +1 @@ +option('glib-version', type: 'string', value: 'unset') -- cgit v1.2.3