diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2013-01-11 22:59:49 +0200 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2013-01-11 22:59:49 +0200 |
commit | c71f82432fab3f031f1805595daf03e08c1b4b87 (patch) | |
tree | 177b9bb11614ed6c9298c7ece8a45005a353a3d9 /builder.py | |
parent | 36e2b0cd37df8d360c057222c5eb511751b67807 (diff) | |
download | meson-c71f82432fab3f031f1805595daf03e08c1b4b87.zip meson-c71f82432fab3f031f1805595daf03e08c1b4b87.tar.gz meson-c71f82432fab3f031f1805595daf03e08c1b4b87.tar.bz2 |
Extracted build data to its own class.
Diffstat (limited to 'builder.py')
-rwxr-xr-x | builder.py | 20 |
1 files changed, 11 insertions, 9 deletions
@@ -18,7 +18,7 @@ from optparse import OptionParser import sys, stat import os.path import environment, interpreter -import shellgenerator +import shellgenerator, build parser = OptionParser() @@ -27,7 +27,7 @@ parser.add_option('--libdir', default='lib', dest='libdir') parser.add_option('--includedir', default='include', dest='includedir') parser.add_option('--datadir', default='share', dest='datadir') -class Builder(): +class BuilderApp(): builder_filename = 'builder.txt' def __init__(self, dir1, dir2, options): @@ -35,7 +35,7 @@ class Builder(): self.options = options def has_builder_file(self, dirname): - fname = os.path.join(dirname, Builder.builder_filename) + fname = os.path.join(dirname, BuilderApp.builder_filename) try: ifile = open(fname, 'r') ifile.close() @@ -55,20 +55,22 @@ class Builder(): raise RuntimeError('Source and build directories must not be the same. Create a pristine build directory.') if self.has_builder_file(ndir1): if self.has_builder_file(ndir2): - raise RuntimeError('Both directories contain a builder file %s.' % Builder.builder_filename) + raise RuntimeError('Both directories contain a builder file %s.' % BuilderApp.builder_filename) return (ndir1, ndir2) if self.has_builder_file(ndir2): return (ndir2, ndir1) - raise RuntimeError('Neither directory contains a builder file %s.' % Builder.builder_filename) + raise RuntimeError('Neither directory contains a builder file %s.' % BuilderApp.builder_filename) def generate(self): - code = open(os.path.join(self.source_dir, Builder.builder_filename)).read() + code = open(os.path.join(self.source_dir, BuilderApp.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, env) - g = shellgenerator.ShellGenerator(intr, env) + b = build.Build(env) + intr = interpreter.Interpreter(code, b) + intr.run() + g = shellgenerator.ShellGenerator(b) g.generate() if __name__ == '__main__': @@ -81,7 +83,7 @@ if __name__ == '__main__': dir2 = args[2] else: dir2 = '.' - builder = Builder(dir1, dir2, options) + builder = BuilderApp(dir1, dir2, options) print ('Source dir: ' + builder.source_dir) print ('Build dir: ' + builder.build_dir) builder.generate() |