aboutsummaryrefslogtreecommitdiff
path: root/interpreter.py
diff options
context:
space:
mode:
Diffstat (limited to 'interpreter.py')
-rw-r--r--interpreter.py12
1 files changed, 9 insertions, 3 deletions
diff --git a/interpreter.py b/interpreter.py
index 8eadc3a..b368d80 100644
--- a/interpreter.py
+++ b/interpreter.py
@@ -722,10 +722,10 @@ class MesonMain(InterpreterObject):
'current_build_dir' : self.current_build_dir_method,
'source_root' : self.source_root_method,
'build_root' : self.build_root_method,
- 'set_install_script' : self.set_install_script_method,
+ 'add_install_script' : self.add_install_script_method,
})
- def set_install_script_method(self, args, kwargs):
+ def add_install_script_method(self, args, kwargs):
if len(args) != 1:
raise InterpreterException('Set_install_script takes exactly one argument.')
check_stringlist(args)
@@ -734,7 +734,7 @@ class MesonMain(InterpreterObject):
self.interpreter.subdir, scriptbase)
if not os.path.isfile(scriptfile):
raise InterpreterException('Can not find install script %s.' % scriptbase)
- self.build.install_script = scriptfile
+ self.build.install_scripts.append(build.InstallScript([scriptfile]))
def current_source_dir_method(self, args, kwargs):
src = self.interpreter.environment.source_dir
@@ -909,6 +909,12 @@ class Interpreter():
outvalues.append(self.module_method_callback(v))
elif isinstance(v, build.GeneratedList):
outvalues.append(GeneratedListHolder(v))
+ elif isinstance(v, build.RunTarget):
+ if v.name in self.build.targets:
+ raise InterpreterException('Tried to create target %s which already exists.' % v.name)
+ self.build.targets[v.name] = v
+ elif isinstance(v, build.InstallScript):
+ self.build.install_scripts.append(v)
else:
print(v)
raise InterpreterException('Module returned a value of unknown type.')