aboutsummaryrefslogtreecommitdiff
path: root/builder.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2013-02-16 21:14:04 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2013-02-16 21:14:04 +0200
commitb0da1037290d555e80620c89e42a1cbc380aacbd (patch)
tree338a021b4b71fb765340cae76e39ee20e4652512 /builder.py
parentd95510a71fb55ffefcae8f1d772304f1af29f954 (diff)
downloadmeson-b0da1037290d555e80620c89e42a1cbc380aacbd.zip
meson-b0da1037290d555e80620c89e42a1cbc380aacbd.tar.gz
meson-b0da1037290d555e80620c89e42a1cbc380aacbd.tar.bz2
Regenerate build info if definition files change.
Diffstat (limited to 'builder.py')
-rwxr-xr-xbuilder.py14
1 files changed, 6 insertions, 8 deletions
diff --git a/builder.py b/builder.py
index 69c7e88..9017be4 100755
--- a/builder.py
+++ b/builder.py
@@ -51,10 +51,11 @@ parser.add_option('--strip', action='store_true', dest='strip', default=False,\
class BuilderApp():
- def __init__(self, dir1, dir2, options):
+ def __init__(self, dir1, dir2, script_file, options):
(self.source_dir, self.build_dir) = self.validate_dirs(dir1, dir2)
if options.prefix[0] != '/':
raise RuntimeError('--prefix must be an absolute path.')
+ self.builder_script_file = script_file
self.options = options
def has_builder_file(self, dirname):
@@ -85,13 +86,9 @@ class BuilderApp():
raise RuntimeError('Neither directory contains a builder file %s.' % environment.builder_filename)
def generate(self):
- code = open(os.path.join(self.source_dir, environment.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, options)
+ env = environment.Environment(self.source_dir, self.build_dir, self.builder_script_file, options)
b = build.Build(env)
- intr = interpreter.Interpreter(code, b)
+ intr = interpreter.Interpreter(b)
intr.run()
if options.generator == 'shell':
g = generators.ShellGenerator(b, intr)
@@ -112,7 +109,8 @@ if __name__ == '__main__':
dir2 = args[2]
else:
dir2 = '.'
- builder = BuilderApp(dir1, dir2, options)
+ this_file = os.path.abspath(__file__)
+ builder = BuilderApp(dir1, dir2, this_file, options)
print ('Source dir: ' + builder.source_dir)
print ('Build dir: ' + builder.build_dir)
os.chdir(builder.build_dir)