aboutsummaryrefslogtreecommitdiff
path: root/generators.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2013-02-08 20:02:42 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2013-02-08 20:02:42 +0200
commit277321eccee96ec4faef3c82d5ff05455f91373b (patch)
treef41d7f1154b2977793d9920054aaa130b4c2cc35 /generators.py
parent6a627c6176f6b2157390b8a26984cc24ab7b614d (diff)
downloadmeson-277321eccee96ec4faef3c82d5ff05455f91373b.zip
meson-277321eccee96ec4faef3c82d5ff05455f91373b.tar.gz
meson-277321eccee96ec4faef3c82d5ff05455f91373b.tar.bz2
Can run unit tests with Ninja.
Diffstat (limited to 'generators.py')
-rwxr-xr-xgenerators.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/generators.py b/generators.py
index b25cf22..af28eb7 100755
--- a/generators.py
+++ b/generators.py
@@ -148,8 +148,22 @@ class NinjaGenerator(Generator):
self.generate_rules(outfile)
outfile.write('# Build rules for targets\n\n')
[self.generate_target(t, outfile) for t in self.build.get_targets().values()]
+ outfile.write('# Test rules\n\n')
+ self.generate_tests(outfile)
outfile.write('# Suffix\n\n')
self.generate_ending(outfile)
+
+ def generate_tests(self, outfile):
+ script_root = '..' # FIXME
+ test_script = os.path.join(script_root, 'builder_test.py')
+ test_data = os.path.join(self.environment.get_scratch_dir(), 'builder_test_setup.dat')
+ outfile.write('build test: CUSTOM_COMMAND\n')
+ outfile.write(' COMMAND = \'%s\' \'%s\'\n\n' % (ninja_quote(test_script), ninja_quote(test_data)))
+ datafile = open(test_data, 'w')
+ for t in self.build.get_tests():
+ datafile.write(self.get_target_filename(t.get_exe()) + '\n')
+ datafile.close()
+
def generate_rules(self, outfile):
outfile.write('# Rules for compiling.\n\n')
@@ -157,6 +171,10 @@ class NinjaGenerator(Generator):
outfile.write('# Rules for linking.\n\n')
self.generate_static_link_rules(outfile)
self.generate_dynamic_link_rules(outfile)
+ outfile.write('# Other rules\n\n')
+ outfile.write('rule CUSTOM_COMMAND\n')
+ outfile.write(' command = $COMMAND\n')
+ outfile.write(' restat = 1\n\n')
def generate_static_link_rules(self, outfile):
static_linker = self.build.static_linker