summaryrefslogtreecommitdiff
path: root/test cases/unit
diff options
context:
space:
mode:
authorFlorian "sp1rit"​ <sp1rit@disroot.org>2025-06-11 19:10:12 +0200
committerJussi Pakkanen <jussi.pakkanen@mailbox.org>2025-06-23 19:59:53 +0300
commitfea9f6918a6647430f4e22ca908f074b3e93e489 (patch)
tree102087d670e2f9b5145bccdf7ac84f1c3c10f838 /test cases/unit
parent19d3e4dc30bd3210eb85e29a538ad1606adef1bc (diff)
downloadmeson-fea9f6918a6647430f4e22ca908f074b3e93e489.tar.gz
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
Diffstat (limited to 'test cases/unit')
-rw-r--r--test cases/unit/129 vala internal glib/lib.vala3
-rw-r--r--test cases/unit/129 vala internal glib/meson.build21
-rw-r--r--test cases/unit/129 vala internal glib/meson.options1
3 files changed, 25 insertions, 0 deletions
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')