aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--interpreter.py7
-rw-r--r--test cases/common/30 pipeline/meson.build15
-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.build12
-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