aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/interpreter.py2
-rw-r--r--test cases/failing/51 reserved meson prefix/meson-foo/meson.build0
-rw-r--r--test cases/failing/51 reserved meson prefix/meson.build3
3 files changed, 5 insertions, 0 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
index 63725ab..ca3cf75 100644
--- a/mesonbuild/interpreter.py
+++ b/mesonbuild/interpreter.py
@@ -2227,6 +2227,8 @@ class Interpreter(InterpreterBase):
raise InvalidArguments('Subdir contains ..')
if self.subdir == '' and args[0] == self.subproject_dir:
raise InvalidArguments('Must not go into subprojects dir with subdir(), use subproject() instead.')
+ if self.subdir == '' and args[0].startswith('meson-'):
+ raise InvalidArguments('The "meson-" prefix is reserved and cannot be used for top-level subdir().')
prev_subdir = self.subdir
subdir = os.path.join(prev_subdir, args[0])
if os.path.isabs(subdir):
diff --git a/test cases/failing/51 reserved meson prefix/meson-foo/meson.build b/test cases/failing/51 reserved meson prefix/meson-foo/meson.build
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test cases/failing/51 reserved meson prefix/meson-foo/meson.build
diff --git a/test cases/failing/51 reserved meson prefix/meson.build b/test cases/failing/51 reserved meson prefix/meson.build
new file mode 100644
index 0000000..1339035
--- /dev/null
+++ b/test cases/failing/51 reserved meson prefix/meson.build
@@ -0,0 +1,3 @@
+project('test')
+
+subdir('meson-foo')