diff options
-rw-r--r-- | mesonbuild/backend/ninjabackend.py | 4 | ||||
-rw-r--r-- | mesonbuild/interpreter.py | 19 |
2 files changed, 22 insertions, 1 deletions
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py index 71797ed..cc0167d 100644 --- a/mesonbuild/backend/ninjabackend.py +++ b/mesonbuild/backend/ninjabackend.py @@ -663,7 +663,9 @@ int dummy; if outdir is None: outdir = os.path.join(incroot, h.get_install_subdir()) for f in h.get_sources(): - assert(isinstance(f, File)) + if not isinstance(f, File): + msg = 'Invalid header type {!r} can\'t be installed' + raise MesonException(msg.format(f)) abspath = f.absolute_path(srcdir, builddir) i = [abspath, outdir] d.headers.append(i) diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index 2167b81..dbf3eba 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -343,6 +343,10 @@ class GeneratedListHolder(InterpreterObject): else: self.held_object = arg1 + def __repr__(self): + r = '<{}: {!r}>' + return r.format(self.__class__.__name__, self.held_object.get_outputs()) + def add_file(self, a): self.held_object.add_file(a) @@ -497,6 +501,11 @@ class BuildTargetHolder(InterpreterObject): 'private_dir_include' : self.private_dir_include_method, }) + def __repr__(self): + r = '<{} {}: {}>' + h = self.held_object + return r.format(self.__class__.__name__, h.get_id(), h.filename) + def is_cross(self): return self.held_object.is_cross() @@ -545,6 +554,11 @@ class CustomTargetHolder(InterpreterObject): self.methods.update({'full_path' : self.full_path_method, }) + def __repr__(self): + r = '<{} {}: {}>' + h = self.held_object + return r.format(self.__class__.__name__, h.get_id(), h.command) + def full_path_method(self, args, kwargs): return self.interpreter.backend.get_target_filename_abs(self.held_object) @@ -552,6 +566,11 @@ class RunTargetHolder(InterpreterObject): def __init__(self, name, command, args, dependencies, subdir): self.held_object = build.RunTarget(name, command, args, dependencies, subdir) + def __repr__(self): + r = '<{} {}: {}>' + h = self.held_object + return r.format(self.__class__.__name__, h.get_id(), h.command) + class Test(InterpreterObject): def __init__(self, name, suite, exe, is_parallel, cmd_args, env, should_fail, timeout, workdir): InterpreterObject.__init__(self) |