From 5b3094d43bae45b779fcbd859d4a883c8f6c9d77 Mon Sep 17 00:00:00 2001 From: Øyvind Aarrestad Aakre Date: Sun, 9 Jan 2022 22:12:52 +0100 Subject: subproject: fix version validation on lookup Fixes a bug where the subproject version was not validated when the subproject had already been processed. The bug would cause inconsistent build results if the subproject was referenced more than once (diamond) with conflicting version requirements. --- test cases/failing/120 subproject version conflict/meson.build | 4 ++++ .../120 subproject version conflict/subprojects/A/meson.build | 4 ++++ .../120 subproject version conflict/subprojects/B/meson.build | 3 +++ test cases/failing/120 subproject version conflict/test.json | 7 +++++++ 4 files changed, 18 insertions(+) create mode 100644 test cases/failing/120 subproject version conflict/meson.build create mode 100644 test cases/failing/120 subproject version conflict/subprojects/A/meson.build create mode 100644 test cases/failing/120 subproject version conflict/subprojects/B/meson.build create mode 100644 test cases/failing/120 subproject version conflict/test.json (limited to 'test cases') diff --git a/test cases/failing/120 subproject version conflict/meson.build b/test cases/failing/120 subproject version conflict/meson.build new file mode 100644 index 000000000..ffbcc13a4 --- /dev/null +++ b/test cases/failing/120 subproject version conflict/meson.build @@ -0,0 +1,4 @@ +project('120 subproject version conflict') + +A_dep = subproject('A').get_variable('A_dep') +B_dep = subproject('B', version: '1').get_variable('B_dep') diff --git a/test cases/failing/120 subproject version conflict/subprojects/A/meson.build b/test cases/failing/120 subproject version conflict/subprojects/A/meson.build new file mode 100644 index 000000000..7da4df0e7 --- /dev/null +++ b/test cases/failing/120 subproject version conflict/subprojects/A/meson.build @@ -0,0 +1,4 @@ +project('A') + +B_dep = subproject('B').get_variable('B_dep') +A_dep = declare_dependency(dependencies: B_dep) diff --git a/test cases/failing/120 subproject version conflict/subprojects/B/meson.build b/test cases/failing/120 subproject version conflict/subprojects/B/meson.build new file mode 100644 index 000000000..0ead9349a --- /dev/null +++ b/test cases/failing/120 subproject version conflict/subprojects/B/meson.build @@ -0,0 +1,3 @@ +project('B', version: '100') + +B_dep = declare_dependency() diff --git a/test cases/failing/120 subproject version conflict/test.json b/test cases/failing/120 subproject version conflict/test.json new file mode 100644 index 000000000..5d445e524 --- /dev/null +++ b/test cases/failing/120 subproject version conflict/test.json @@ -0,0 +1,7 @@ +{ + "stdout": [ + { + "line": "test cases/failing/120 subproject version conflict/meson.build:4:0: ERROR: Subproject B version is 100 but 1 required." + } + ] +} -- cgit v1.2.3