diff options
Diffstat (limited to 'interpreter.py')
-rw-r--r-- | interpreter.py | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/interpreter.py b/interpreter.py index f14e981..75df340 100644 --- a/interpreter.py +++ b/interpreter.py @@ -1020,7 +1020,7 @@ class Interpreter(): fullstack = self.subproject_stack + [dirname] incpath = ' => '.join(fullstack) raise InterpreterException('Recursive include of subprojects: %s.' % incpath) - if dirname == self.subprojects: + if dirname in self.subprojects: return self.subprojects[dirname] subdir = os.path.join('subprojects', dirname) r = wrap.Resolver(os.path.join(self.build.environment.get_source_dir(), 'subprojects')) @@ -1032,11 +1032,13 @@ class Interpreter(): self.global_args_frozen = True mlog.log('\nExecuting subproject ', mlog.bold(dirname), '.\n', sep='') subi = Interpreter(self.build, dirname, subdir) + subi.subprojects = self.subprojects subi.subproject_stack = self.subproject_stack + [dirname] subi.run() mlog.log('\nSubproject', mlog.bold(dirname), 'finished.') self.build.subprojects[dirname] = True + self.subprojects.update(subi.subprojects) self.subprojects[dirname] = SubprojectHolder(subi) self.build_def_files += subi.build_def_files return self.subprojects[dirname] |