diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2021-03-02 21:49:23 +0200 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2021-03-05 17:52:15 +0200 |
commit | 421e66edd314a2f9fbc2805e961e26e3d61a9184 (patch) | |
tree | 594afa87d24aee5fe4791c003ee6143477ee8d6f /mesonbuild/interpreter.py | |
parent | c4e436348307fc6d75f712d166423df60ddcdc16 (diff) | |
download | meson-subdirrefac.tar.gz |
Refactor subdir visitation to track files instead of dirs.subdirrefac
Diffstat (limited to 'mesonbuild/interpreter.py')
-rw-r--r-- | mesonbuild/interpreter.py | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index c8cf07867..68744ef6b 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -2380,7 +2380,7 @@ class Interpreter(InterpreterBase): self.sanity_check_ast() self.builtin.update({'meson': MesonMain(build, self)}) self.generators = [] - self.visited_subdirs = {} + self.processed_buildfiles = set() # type: T.Set[str] self.project_args_frozen = False self.global_args_frozen = False # implies self.project_args_frozen self.subprojects = {} @@ -4212,10 +4212,11 @@ This will become a hard error in the future.''' % kwargs['input'], location=self raise InvalidArguments('Subdir argument must be a relative path.') absdir = os.path.join(self.environment.get_source_dir(), subdir) symlinkless_dir = os.path.realpath(absdir) - if symlinkless_dir in self.visited_subdirs: + build_file = os.path.join(symlinkless_dir, 'meson.build') + if build_file in self.processed_buildfiles: raise InvalidArguments('Tried to enter directory "%s", which has already been visited.' % subdir) - self.visited_subdirs[symlinkless_dir] = True + self.processed_buildfiles.add(build_file) self.subdir = subdir os.makedirs(os.path.join(self.environment.build_dir, subdir), exist_ok=True) buildfilename = os.path.join(self.subdir, environment.build_filename) |