diff options
author | Nirbheek Chauhan <nirbheek@centricular.com> | 2018-08-11 17:38:10 +0530 |
---|---|---|
committer | Nirbheek Chauhan <nirbheek.chauhan@gmail.com> | 2018-08-11 09:15:05 -0700 |
commit | 43ececb036a6ca1911862d6fef1e49e822784f59 (patch) | |
tree | 2bb689f24b4d74203a573c1c3ea475fbea9c605d | |
parent | ecede89b5d3b804fafcec0bab68fec1cfab519aa (diff) | |
download | meson-43ececb036a6ca1911862d6fef1e49e822784f59.zip meson-43ececb036a6ca1911862d6fef1e49e822784f59.tar.gz meson-43ececb036a6ca1911862d6fef1e49e822784f59.tar.bz2 |
Skip FeatureNew checks when project() has not been parsed
Fixes https://github.com/mesonbuild/meson/issues/3944
-rw-r--r-- | mesonbuild/interpreterbase.py | 3 | ||||
-rw-r--r-- | test cases/common/38 run program/get-version.py | 3 | ||||
-rw-r--r-- | test cases/common/38 run program/meson.build | 2 |
3 files changed, 7 insertions, 1 deletions
diff --git a/mesonbuild/interpreterbase.py b/mesonbuild/interpreterbase.py index 64177ab..e5d7eb1 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 0000000..a22d559 --- /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 ab800ef..a05cea3 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') |