Can specify extra arguments to generator commands. Closes #315.
parent
2024d9d237
commit
913963d608
8 changed files with 66 additions and 7 deletions
@ -0,0 +1,13 @@ |
|||||||
|
project('extra args in gen', 'c') |
||||||
|
|
||||||
|
prog = find_program('srcgen.py') |
||||||
|
|
||||||
|
gen = generator(prog, |
||||||
|
output : '@BASENAME@.c', |
||||||
|
arguments : ['--input=@INPUT@', '--output=@OUTPUT@', '@EXTRA_ARGS@']) |
||||||
|
|
||||||
|
g1 = gen.process('name.dat') |
||||||
|
g2 = gen.process('name.dat', extra_args: '--upper') |
||||||
|
|
||||||
|
test('basic', executable('basic', 'plain.c', g1)) |
||||||
|
test('upper', executable('upper', 'upper.c', g2)) |
@ -0,0 +1 @@ |
|||||||
|
bob_mcbob |
@ -0,0 +1,5 @@ |
|||||||
|
int bob_mcbob(); |
||||||
|
|
||||||
|
int main(int argc, char **argv) { |
||||||
|
return bob_mcbob(); |
||||||
|
} |
@ -0,0 +1,26 @@ |
|||||||
|
#!/usr/bin/env python3 |
||||||
|
|
||||||
|
import sys |
||||||
|
import os |
||||||
|
import argparse |
||||||
|
|
||||||
|
parser = argparse.ArgumentParser() |
||||||
|
parser.add_argument('--input', dest='input', |
||||||
|
help='the input file') |
||||||
|
parser.add_argument('--output', dest='output', |
||||||
|
help='the output file') |
||||||
|
parser.add_argument('--upper', dest='upper', action='store_true', default=False, |
||||||
|
help='Convert to upper case.') |
||||||
|
|
||||||
|
c_templ = '''int %s() { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
''' |
||||||
|
|
||||||
|
options = parser.parse_args(sys.argv[1:]) |
||||||
|
|
||||||
|
funcname = open(options.input).readline().strip() |
||||||
|
if options.upper: |
||||||
|
funcname = funcname.upper() |
||||||
|
|
||||||
|
open(options.output, 'w').write(c_templ % funcname) |
@ -0,0 +1,5 @@ |
|||||||
|
int BOB_MCBOB(); |
||||||
|
|
||||||
|
int main(int argc, char **argv) { |
||||||
|
return BOB_MCBOB(); |
||||||
|
} |
Loading…
Reference in new issue