aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenoit Pierre <benoit.pierre@gmail.com>2021-11-24 19:52:44 +0100
committerEli Schwartz <eschwartz93@gmail.com>2021-11-25 20:13:53 -0500
commit007c4659c2154755fc1f57d415afc8a736f81af2 (patch)
treeff3e72def4535ac89b70d392f9447b73d552e027
parent858b114d5cf83827f1bd0fd123b0e00cc1f63961 (diff)
downloadmeson-007c4659c2154755fc1f57d415afc8a736f81af2.zip
meson-007c4659c2154755fc1f57d415afc8a736f81af2.tar.gz
meson-007c4659c2154755fc1f57d415afc8a736f81af2.tar.bz2
interpreter: fix `feature.require` handling of error message
Don't show a blank error when no `error_message` was passed as argument.
-rw-r--r--mesonbuild/interpreter/interpreterobjects.py3
-rw-r--r--test cases/failing/106 feature require.bis/meson.build2
-rw-r--r--test cases/failing/106 feature require.bis/meson_options.txt1
-rw-r--r--test cases/failing/106 feature require.bis/test.json8
4 files changed, 13 insertions, 1 deletions
diff --git a/mesonbuild/interpreter/interpreterobjects.py b/mesonbuild/interpreter/interpreterobjects.py
index ccaa1c7..b3dbe55 100644
--- a/mesonbuild/interpreter/interpreterobjects.py
+++ b/mesonbuild/interpreter/interpreterobjects.py
@@ -139,7 +139,8 @@ class FeatureOptionHolder(ObjectHolder[coredata.UserFeatureOption]):
assert isinstance(error_message, str)
if self.value == 'enabled':
prefix = f'Feature {self.held_object.name} cannot be enabled'
- prefix = prefix + ': ' if error_message else ''
+ if error_message:
+ prefix += ': '
raise InterpreterException(prefix + error_message)
return self.as_disabled()
diff --git a/test cases/failing/106 feature require.bis/meson.build b/test cases/failing/106 feature require.bis/meson.build
new file mode 100644
index 0000000..08c099c
--- /dev/null
+++ b/test cases/failing/106 feature require.bis/meson.build
@@ -0,0 +1,2 @@
+project('no fallback', 'c')
+foo = get_option('reqfeature').require(false)
diff --git a/test cases/failing/106 feature require.bis/meson_options.txt b/test cases/failing/106 feature require.bis/meson_options.txt
new file mode 100644
index 0000000..5910a87
--- /dev/null
+++ b/test cases/failing/106 feature require.bis/meson_options.txt
@@ -0,0 +1 @@
+option('reqfeature', type : 'feature', value : 'enabled', description : 'A required feature')
diff --git a/test cases/failing/106 feature require.bis/test.json b/test cases/failing/106 feature require.bis/test.json
new file mode 100644
index 0000000..2583990
--- /dev/null
+++ b/test cases/failing/106 feature require.bis/test.json
@@ -0,0 +1,8 @@
+{
+ "stdout": [
+ {
+ "match": "re",
+ "line": ".*/meson\\.build:2:0: ERROR: Feature reqfeature cannot be enabled"
+ }
+ ]
+}