diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2014-02-24 00:43:45 +0200 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2014-02-24 00:43:45 +0200 |
commit | e0c4447666837d92db63f4dfc8e949cbd4520327 (patch) | |
tree | ec229ac84b8d0e5252fdf59b5d9466d7253fb913 | |
parent | 2444eb357e1e19b5b7f77de4db9cf8ad26e82848 (diff) | |
download | meson-e0c4447666837d92db63f4dfc8e949cbd4520327.zip meson-e0c4447666837d92db63f4dfc8e949cbd4520327.tar.gz meson-e0c4447666837d92db63f4dfc8e949cbd4520327.tar.bz2 |
Test for recursive instantiations of subprojects.
-rw-r--r-- | interpreter.py | 4 | ||||
-rw-r--r-- | test cases/failing/8 recursive/meson.build | 3 | ||||
-rw-r--r-- | test cases/failing/8 recursive/subprojects/a/meson.build | 3 | ||||
-rw-r--r-- | test cases/failing/8 recursive/subprojects/b/meson.build | 3 |
4 files changed, 11 insertions, 2 deletions
diff --git a/interpreter.py b/interpreter.py index 51b1ebc..88f4b74 100644 --- a/interpreter.py +++ b/interpreter.py @@ -797,7 +797,7 @@ class Interpreter(): if self.subdir != '': raise InterpreterException('Subprojects must be defined at the root directory.') if dirname in self.subproject_stack: - fullstack = self.subdir_stack + [dirname] + fullstack = self.subproject_stack + [dirname] incpath = ' => '.join(fullstack) raise InterpreterException('Recursive include of subprojects: %s.' % incpath) if dirname == self.subprojects: @@ -809,7 +809,7 @@ class Interpreter(): self.global_flags_frozen = True mlog.log('\nExecuting subproject ', mlog.bold(dirname), '.\n', sep='') subi = Interpreter(self.build, subdir) - subi.subproject_stack = self.subproject_stack + [subdir] + subi.subproject_stack = self.subproject_stack + [dirname] subi.run() mlog.log('\nSubproject', mlog.bold(dirname), 'finished.') self.build.subprojects[dirname] = True diff --git a/test cases/failing/8 recursive/meson.build b/test cases/failing/8 recursive/meson.build new file mode 100644 index 0000000..f315294 --- /dev/null +++ b/test cases/failing/8 recursive/meson.build @@ -0,0 +1,3 @@ +project('recursive', 'c') + +a = subproject('a') diff --git a/test cases/failing/8 recursive/subprojects/a/meson.build b/test cases/failing/8 recursive/subprojects/a/meson.build new file mode 100644 index 0000000..7c6040b --- /dev/null +++ b/test cases/failing/8 recursive/subprojects/a/meson.build @@ -0,0 +1,3 @@ +project('a', 'c') + +b = subproject('b') diff --git a/test cases/failing/8 recursive/subprojects/b/meson.build b/test cases/failing/8 recursive/subprojects/b/meson.build new file mode 100644 index 0000000..d0beeb7 --- /dev/null +++ b/test cases/failing/8 recursive/subprojects/b/meson.build @@ -0,0 +1,3 @@ +project('b', 'c') + +a = subproject('a') |