aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNirbheek Chauhan <nirbheek@centricular.com>2018-08-11 17:38:10 +0530
committerNirbheek Chauhan <nirbheek.chauhan@gmail.com>2018-08-11 09:15:05 -0700
commit43ececb036a6ca1911862d6fef1e49e822784f59 (patch)
tree2bb689f24b4d74203a573c1c3ea475fbea9c605d
parentecede89b5d3b804fafcec0bab68fec1cfab519aa (diff)
downloadmeson-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.py3
-rw-r--r--test cases/common/38 run program/get-version.py3
-rw-r--r--test cases/common/38 run program/meson.build2
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')