diff options
-rw-r--r-- | test cases/common/98 gen extra/meson.build | 16 | ||||
-rw-r--r-- | test cases/common/98 gen extra/srcgen2.py | 32 |
2 files changed, 39 insertions, 9 deletions
diff --git a/test cases/common/98 gen extra/meson.build b/test cases/common/98 gen extra/meson.build index 897ef41..772f52e 100644 --- a/test cases/common/98 gen extra/meson.build +++ b/test cases/common/98 gen extra/meson.build @@ -12,21 +12,19 @@ g2 = gen.process('name.dat', extra_args: '--upper') test('basic', executable('basic', 'plain.c', g1)) test('upper', executable('upper', 'upper.c', g2)) -cp = find_program('cp') -basename_gen = generator(cp, - output : '@BASENAME@.c', - arguments : ['@INPUT@', join_paths('@BUILD_DIR@', '@BASENAME@.c')]) +prog2 = find_program('srcgen2.py') +basename_gen = generator(prog2, + output : ['@BASENAME@.tab.c', '@BASENAME@.tab.h'], + arguments : ['@BUILD_DIR@', '@BASENAME@', '@INPUT@']) -# This test should produce a name.c basename_src = basename_gen.process('name.l') test('basename', executable('basename', basename_src)) -plainname_gen = generator(cp, - output : '@PLAINNAME@.c', - arguments : ['@INPUT@', join_paths('@BUILD_DIR@', '@PLAINNAME@.c')]) +plainname_gen = generator(prog2, + output : ['@PLAINNAME@.tab.c', '@PLAINNAME@.tab.h'], + arguments : ['@BUILD_DIR@', '@PLAINNAME@', '@INPUT@']) -# This test should produce a name.l.c plainname_src = plainname_gen.process('name.l') test('plainname', executable('plainname', plainname_src)) diff --git a/test cases/common/98 gen extra/srcgen2.py b/test cases/common/98 gen extra/srcgen2.py new file mode 100644 index 0000000..9cdf12d --- /dev/null +++ b/test cases/common/98 gen extra/srcgen2.py @@ -0,0 +1,32 @@ +#!/usr/bin/env python3 + +import os +import sys +import argparse + +parser = argparse.ArgumentParser() +parser.add_argument('target_dir', + help='the target dir') +parser.add_argument('stem', + help='the stem') +parser.add_argument('input', + help='the input file') + +options = parser.parse_args(sys.argv[1:]) + +with open(options.input) as f: + content = f.read() + + +output_c = os.path.join(options.target_dir, options.stem + ".tab.c") +with open(output_c, 'w') as f: + f.write(content) + + +output_h = os.path.join(options.target_dir, options.stem + ".tab.h") +h_content = '''#pragma once + +int myfun(void); +''' +with open(output_h, 'w') as f: + f.write(h_content) |