aboutsummaryrefslogtreecommitdiff
path: root/interpreter.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 /interpreter.py
parentd95510a71fb55ffefcae8f1d772304f1af29f954 (diff)
downloadmeson-b0da1037290d555e80620c89e42a1cbc380aacbd.zip
meson-b0da1037290d555e80620c89e42a1cbc380aacbd.tar.gz
meson-b0da1037290d555e80620c89e42a1cbc380aacbd.tar.bz2
Regenerate build info if definition files change.
Diffstat (limited to 'interpreter.py')
-rwxr-xr-xinterpreter.py14
1 files changed, 13 insertions, 1 deletions
diff --git a/interpreter.py b/interpreter.py
index c353dbe..7cc90e7 100755
--- a/interpreter.py
+++ b/interpreter.py
@@ -335,8 +335,13 @@ class Test(InterpreterObject):
class Interpreter():
- def __init__(self, code, build):
+ def __init__(self, build):
self.build = build
+ code = open(os.path.join(build.environment.get_source_dir(),\
+ environment.builder_filename)).read()
+ if len(code.strip()) == 0:
+ raise InvalidCode('Builder file is empty.')
+ assert(isinstance(code, str))
self.ast = bparser.build_ast(code)
self.sanity_check_ast()
self.variables = {}
@@ -344,6 +349,7 @@ class Interpreter():
self.builtin['host'] = Host()
self.environment = build.environment
self.build_func_dict()
+ self.build_def_files = [environment.builder_filename]
self.subdir = ''
def build_func_dict(self):
@@ -362,6 +368,9 @@ class Interpreter():
'include_directories' : self.func_include_directories,
'add_global_arguments' : self.func_add_global_arguments,
}
+
+ def get_build_def_files(self):
+ return self.build_def_files
def get_variables(self):
return self.variables
@@ -511,6 +520,7 @@ class Interpreter():
prev_subdir = self.subdir
self.subdir = os.path.join(prev_subdir, args[0])
buildfilename = os.path.join(self.subdir, environment.builder_filename)
+ self.build_def_files.append(buildfilename)
code = open(os.path.join(self.environment.get_source_dir(), buildfilename)).read()
assert(isinstance(code, str))
codeblock = bparser.build_ast(code)
@@ -530,6 +540,8 @@ class Interpreter():
def func_configure_file(self, node, args, kwargs):
self.validate_arguments(args, 2, [str, str])
+ conffile = os.path.join(self.subdir, args[0])
+ self.build_def_files.append(conffile)
c = ConfigureFile(self.subdir, args[0], args[1], kwargs)
self.build.configure_files.append(c)