diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index 63725abb0..ca3cf7568 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 000000000..e69de29bb 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 000000000..1339035ad --- /dev/null +++ b/test cases/failing/51 reserved meson prefix/meson.build @@ -0,0 +1,3 @@ +project('test') + +subdir('meson-foo')