From 6f7f7c69a2a30f4ea04a73b45763dc2c4f62a453 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Manuel=20J=C3=A1quez=20Leal?= Date: Tue, 20 Mar 2018 16:36:29 +0100 Subject: [PATCH] dependency's wanted version might be a list A dependency declared in a subproject should be able to behave as a pkgconfig dependency, thus it should process the wanted version as a list. --- mesonbuild/interpreter.py | 2 +- test cases/common/187 subproject version/meson.build | 10 ++++++++++ .../187 subproject version/subprojects/a/meson.build | 5 +++++ 3 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 test cases/common/187 subproject version/meson.build create mode 100644 test cases/common/187 subproject version/subprojects/a/meson.build diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index 16798a437..c87a49b18 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -2349,7 +2349,7 @@ to directly access options of other subprojects.''') def check_subproject_version(wanted, found): if wanted == 'undefined': return True - if found == 'undefined' or not mesonlib.version_compare(found, wanted): + if found == 'undefined' or not mesonlib.version_compare_many(found, wanted)[0]: return False return True diff --git a/test cases/common/187 subproject version/meson.build b/test cases/common/187 subproject version/meson.build new file mode 100644 index 000000000..bd8fc0392 --- /dev/null +++ b/test cases/common/187 subproject version/meson.build @@ -0,0 +1,10 @@ +project('subproject version', 'c', + version : '2.3.4', + license: 'mylicense') + +subproject('a') + +liba_dep = dependency('a', + fallback: ['a', 'liba_dep'], + version: ['>= 0.30.0', '!= 0.99.0']) + diff --git a/test cases/common/187 subproject version/subprojects/a/meson.build b/test cases/common/187 subproject version/subprojects/a/meson.build new file mode 100644 index 000000000..dae31300f --- /dev/null +++ b/test cases/common/187 subproject version/subprojects/a/meson.build @@ -0,0 +1,5 @@ +project('mysubproject', 'c', + version : '1.0.0', + license : 'sublicense') + +liba_dep = declare_dependency (version : '1.0.0')