From 43ececb036a6ca1911862d6fef1e49e822784f59 Mon Sep 17 00:00:00 2001 From: Nirbheek Chauhan Date: Sat, 11 Aug 2018 17:38:10 +0530 Subject: Skip FeatureNew checks when project() has not been parsed Fixes https://github.com/mesonbuild/meson/issues/3944 --- mesonbuild/interpreterbase.py | 3 +++ test cases/common/38 run program/get-version.py | 3 +++ test cases/common/38 run program/meson.build | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 test cases/common/38 run program/get-version.py diff --git a/mesonbuild/interpreterbase.py b/mesonbuild/interpreterbase.py index 64177abd6..e5d7eb163 100644 --- a/mesonbuild/interpreterbase.py +++ b/mesonbuild/interpreterbase.py @@ -172,6 +172,9 @@ class FeatureCheckBase: @staticmethod def get_target_version(subproject): + # Don't do any checks if project() has not been parsed yet + if subproject not in mesonlib.project_meson_versions: + return '' return mesonlib.project_meson_versions[subproject] def use(self, subproject): diff --git a/test cases/common/38 run program/get-version.py b/test cases/common/38 run program/get-version.py new file mode 100644 index 000000000..a22d55998 --- /dev/null +++ b/test cases/common/38 run program/get-version.py @@ -0,0 +1,3 @@ +#!/usr/bin/env python3 + +print('1.2') diff --git a/test cases/common/38 run program/meson.build b/test cases/common/38 run program/meson.build index ab800ef68..a05cea3fb 100644 --- a/test cases/common/38 run program/meson.build +++ b/test cases/common/38 run program/meson.build @@ -1,4 +1,4 @@ -project('run command', 'c') +project('run command', version : run_command('get-version.py', check : true).stdout().strip()) if build_machine.system() == 'windows' c = run_command('cmd', '/c', 'echo', 'hello') -- cgit v1.2.3