diff options
-rw-r--r-- | contributing.txt | 11 | ||||
-rw-r--r-- | interpreter.py | 3 | ||||
-rw-r--r-- | test cases/common/79 shared subproject/a.c | 13 | ||||
-rw-r--r-- | test cases/common/79 shared subproject/meson.build | 3 | ||||
-rw-r--r-- | test cases/common/79 shared subproject/subprojects/B/b.c | 12 | ||||
-rw-r--r-- | test cases/common/79 shared subproject/subprojects/C/c.c | 6 |
6 files changed, 37 insertions, 11 deletions
diff --git a/contributing.txt b/contributing.txt index 50446e4..0e7a7ff 100644 --- a/contributing.txt +++ b/contributing.txt @@ -6,7 +6,7 @@ mailing list. Remember to add your name to the list of contributors in authors.txt. -Coding style +Python Coding style Meson follows the basic Python coding style. Additional rules are the following: @@ -20,6 +20,15 @@ following: a big feature) +C/C++ coding style + +Meson has a bunch of test code in several languages. The rules for +those are simple. + +- indent 4 spaces, no tabs ever +- brace always on the same line as if/for/else/function definition + + External dependencies The goal of Meson is to be as easily usable as possible. The user diff --git a/interpreter.py b/interpreter.py index f14e981..d140c19 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')) @@ -1037,6 +1037,7 @@ class Interpreter(): 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] diff --git a/test cases/common/79 shared subproject/a.c b/test cases/common/79 shared subproject/a.c new file mode 100644 index 0000000..6ed96fa --- /dev/null +++ b/test cases/common/79 shared subproject/a.c @@ -0,0 +1,13 @@ +#include<assert.h> +char func_b(); +char func_c(); + +int main(int argc, char **argv) { + if(func_b() != 'b') { + return 1; + } + if(func_c() != 'c') { + return 2; + } + return 0; +} diff --git a/test cases/common/79 shared subproject/meson.build b/test cases/common/79 shared subproject/meson.build index ee4c09f..92b1c8f 100644 --- a/test cases/common/79 shared subproject/meson.build +++ b/test cases/common/79 shared subproject/meson.build @@ -6,4 +6,5 @@ b = B.get_variable('b') C = subproject('C') c = B.get_variable('c') -a = executable('a', 'a.c', link_with : [ b, c ]) +a = executable('a', 'a.c', link_with : [b, c]) +test('a test', a) diff --git a/test cases/common/79 shared subproject/subprojects/B/b.c b/test cases/common/79 shared subproject/subprojects/B/b.c index 2ee5a42..03b0cc7 100644 --- a/test cases/common/79 shared subproject/subprojects/B/b.c +++ b/test cases/common/79 shared subproject/subprojects/B/b.c @@ -1,5 +1,9 @@ -char -func_b() -{ - return 'b'; +#include<stdlib.h> +char func_c(); + +char func_b() { + if(func_c() != 'c') { + exit(3); + } + return 'b'; } diff --git a/test cases/common/79 shared subproject/subprojects/C/c.c b/test cases/common/79 shared subproject/subprojects/C/c.c index ff47251..3bbac08 100644 --- a/test cases/common/79 shared subproject/subprojects/C/c.c +++ b/test cases/common/79 shared subproject/subprojects/C/c.c @@ -1,5 +1,3 @@ -char -func_c() -{ - return 'c'; +char func_c() { + return 'c'; } |