summaryrefslogtreecommitdiffstats
path: root/test cases/frameworks/8 flex/meson.build
diff options
context:
space:
mode:
Diffstat (limited to 'test cases/frameworks/8 flex/meson.build')
-rw-r--r--test cases/frameworks/8 flex/meson.build36
1 files changed, 36 insertions, 0 deletions
diff --git a/test cases/frameworks/8 flex/meson.build b/test cases/frameworks/8 flex/meson.build
new file mode 100644
index 0000000..55b96dd
--- /dev/null
+++ b/test cases/frameworks/8 flex/meson.build
@@ -0,0 +1,36 @@
+project('flex and bison', 'c')
+
+# The point of this test is that one generator
+# may output headers that are necessary to build
+# the sources of a different generator.
+
+flex = find_program('flex', required: false)
+bison = find_program('bison', required: false)
+
+if not flex.found()
+ error('MESON_SKIP_TEST flex not found.')
+endif
+
+if not bison.found()
+ error('MESON_SKIP_TEST bison not found.')
+endif
+
+lgen = generator(flex,
+output : '@PLAINNAME@.yy.c',
+arguments : ['-o', '@OUTPUT@', '@INPUT@'])
+
+lfiles = lgen.process('lexer.l')
+
+pgen = generator(bison,
+output : ['@BASENAME@.tab.c', '@BASENAME@.tab.h'],
+arguments : ['@INPUT@', '--defines=@OUTPUT1@', '--output=@OUTPUT0@'])
+
+pfiles = pgen.process('parser.y')
+
+e = executable('pgen', 'prog.c',
+ lfiles,
+ pfiles,
+ override_options: 'unity=off')
+
+test('parsertest', e,
+ args: [meson.current_source_dir() / 'testfile'])