diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2013-01-01 18:03:30 +0200 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2013-01-01 18:03:30 +0200 |
commit | 7651e8a64180d24d4da92c9c5eb1e826ee0ec5a5 (patch) | |
tree | 04a1114c53e70077252c3092de100824cc6f8f75 /builder.py | |
parent | aa99fb0c6747995ea885c695e94279c9e14a5b22 (diff) | |
download | meson-7651e8a64180d24d4da92c9c5eb1e826ee0ec5a5.zip meson-7651e8a64180d24d4da92c9c5eb1e826ee0ec5a5.tar.gz meson-7651e8a64180d24d4da92c9c5eb1e826ee0ec5a5.tar.bz2 |
Can generate full build projects.
Diffstat (limited to 'builder.py')
-rwxr-xr-x | builder.py | 16 |
1 files changed, 15 insertions, 1 deletions
@@ -17,7 +17,9 @@ from optparse import OptionParser import sys, stat import os.path -import environment +import environment, interpreter +import shellgenerator +from interpreter import InvalidCode parser = OptionParser() @@ -60,6 +62,16 @@ class Builder(): if self.has_builder_file(ndir2): return (ndir2, ndir1) raise RuntimeError('Neither directory contains a builder file %s.' % Builder.builder_filename) + + def generate(self): + code = open(os.path.join(self.source_dir, Builder.builder_filename)).read() + if len(code.strip()) == 0: + raise interpreter.InvalidCode('Builder file is empty.') + assert(isinstance(code, str)) + env = environment.Environment(self.source_dir, self.build_dir) + intr = interpreter.Interpreter(code) + g = shellgenerator.ShellGenerator(intr, env) + g.generate() if __name__ == '__main__': (options, args) = parser.parse_args(sys.argv) @@ -74,3 +86,5 @@ if __name__ == '__main__': builder = Builder(dir1, dir2, options) print ('Source dir: ' + builder.source_dir) print ('Build dir: ' + builder.build_dir) + builder.generate() + |