aboutsummaryrefslogtreecommitdiff
path: root/generators.py
diff options
context:
space:
mode:
Diffstat (limited to 'generators.py')
-rwxr-xr-xgenerators.py20
1 files changed, 19 insertions, 1 deletions
diff --git a/generators.py b/generators.py
index 168c4b6..92bc518 100755
--- a/generators.py
+++ b/generators.py
@@ -54,9 +54,27 @@ class NinjaGenerator(Generator):
def __init__(self, build, interp):
Generator.__init__(self, build, interp)
+ self.ninja_filename = 'build.ninja'
def generate(self):
- pass
+ outfilename = os.path.join(self.environment.get_build_dir(), self.ninja_filename)
+ outfile = open(outfilename, 'w')
+ self.generate_rules(outfile)
+
+ def generate_rules(self, outfile):
+ for compiler in self.build.compilers:
+ langname = compiler.get_language()
+ rule = 'rule %s_COMPILER\n' % langname
+ command = ' command = %s $FLAGS %s $out %s $in\n' % \
+ (' '.join(compiler.get_exelist()),\
+ ' '.join(compiler.get_output_flags()),\
+ ' '.join(compiler.get_compile_only_flags()))
+ description = ' description = compiling %s object' % langname
+ outfile.write(rule)
+ outfile.write(command)
+ outfile.write(description)
+ outfile.write('\n')
+ outfile.write('\n')
class ShellGenerator(Generator):
def __init__(self, build, interp):