diff options
-rw-r--r-- | interpreter.py | 7 | ||||
-rw-r--r-- | test cases/common/30 pipeline/meson.build | 15 | ||||
-rw-r--r-- | test cases/common/30 pipeline/src/input_src.dat (renamed from test cases/common/30 pipeline/input_src.dat) | 0 | ||||
-rw-r--r-- | test cases/common/30 pipeline/src/meson.build | 12 | ||||
-rw-r--r-- | test cases/common/30 pipeline/src/prog.c (renamed from test cases/common/30 pipeline/prog.c) | 0 | ||||
-rw-r--r-- | test cases/common/30 pipeline/src/srcgen.c (renamed from test cases/common/30 pipeline/srcgen.c) | 0 |
6 files changed, 19 insertions, 15 deletions
diff --git a/interpreter.py b/interpreter.py index a3b5e6f..ffad881 100644 --- a/interpreter.py +++ b/interpreter.py @@ -210,8 +210,9 @@ class ExternalLibraryHolder(InterpreterObject): return self.el.get_exe_args() class GeneratorHolder(InterpreterObject): - def __init__(self, args, kwargs): + def __init__(self, interpreter, args, kwargs): super().__init__() + self.interpreter = interpreter self.generator = build.Generator(args, kwargs) self.methods.update({'process' : self.process_method}) @@ -226,7 +227,7 @@ class GeneratorHolder(InterpreterObject): if not isinstance(a, str): raise InvalidArguments('A non-string object in "process" arguments.') gl = GeneratedListHolder(self) - [gl.add_file(a) for a in args] + [gl.add_file(os.path.join(self.interpreter.subdir, a)) for a in args] return gl class GeneratedListHolder(InterpreterObject): @@ -1085,7 +1086,7 @@ class Interpreter(): return tg def func_generator(self, node, args, kwargs): - gen = GeneratorHolder(args, kwargs) + gen = GeneratorHolder(self, args, kwargs) self.generators.append(gen) return gen diff --git a/test cases/common/30 pipeline/meson.build b/test cases/common/30 pipeline/meson.build index f639876..0a430bd 100644 --- a/test cases/common/30 pipeline/meson.build +++ b/test cases/common/30 pipeline/meson.build @@ -1,14 +1,5 @@ project('pipeline test', 'c') -e1 = executable('srcgen', 'srcgen.c', native : true) - -# Generate a header file that needs to be included. -gen = generator(e1, - output : '@BASENAME@.h', - arguments : ['@INPUT@', '@OUTPUT@']) - -generated = gen.process('input_src.dat') - -e2 = executable('prog', 'prog.c', generated) - -test('pipelined', e2)
\ No newline at end of file +# This is in a subdirectory to make sure +# we write proper subdir paths to output. +subdir('src') diff --git a/test cases/common/30 pipeline/input_src.dat b/test cases/common/30 pipeline/src/input_src.dat index 354499a..354499a 100644 --- a/test cases/common/30 pipeline/input_src.dat +++ b/test cases/common/30 pipeline/src/input_src.dat diff --git a/test cases/common/30 pipeline/src/meson.build b/test cases/common/30 pipeline/src/meson.build new file mode 100644 index 0000000..4e9ac11 --- /dev/null +++ b/test cases/common/30 pipeline/src/meson.build @@ -0,0 +1,12 @@ +e1 = executable('srcgen', 'srcgen.c', native : true) + +# Generate a header file that needs to be included. +gen = generator(e1, + output : '@BASENAME@.h', + arguments : ['@INPUT@', '@OUTPUT@']) + +generated = gen.process('input_src.dat') + +e2 = executable('prog', 'prog.c', generated) + +test('pipelined', e2) diff --git a/test cases/common/30 pipeline/prog.c b/test cases/common/30 pipeline/src/prog.c index 29396b9..29396b9 100644 --- a/test cases/common/30 pipeline/prog.c +++ b/test cases/common/30 pipeline/src/prog.c diff --git a/test cases/common/30 pipeline/srcgen.c b/test cases/common/30 pipeline/src/srcgen.c index c4f4b87..c4f4b87 100644 --- a/test cases/common/30 pipeline/srcgen.c +++ b/test cases/common/30 pipeline/src/srcgen.c |