aboutsummaryrefslogtreecommitdiff
path: root/interpreter.py
diff options
context:
space:
mode:
Diffstat (limited to 'interpreter.py')
-rw-r--r--interpreter.py4
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]