| # Tests whether fortran sources files created during configuration are properly |
| # scanned for dependency information |
| |
| project('generated', 'fortran', |
| default_options : ['default_library=static']) |
| |
| conf_data = configuration_data() |
| conf_data.set('ONE', 1) |
| conf_data.set('TWO', 2) |
| |
| mod3_f = import('fs').copyfile('mod3.f90', 'mod3.f90') |
| three = library('mod3', mod3_f) |
| |
| templates_basenames = ['mod2', 'mod1'] |
| generated_sources = [] |
| foreach template_basename : templates_basenames |
| infilename = '@0@.fpp'.format(template_basename) |
| outfilename = '@0@.f90'.format(template_basename) |
| outfile = configure_file( |
| input : infilename, output : outfilename, configuration : conf_data) |
| generated_sources += [outfile] |
| endforeach |
| |
| sources = ['prog.f90'] + generated_sources |
| exe = executable('configure_file', sources, link_with: three) |
| test('configure_file', exe) |
| |
| gen = generator( |
| find_program('gen.py'), |
| arguments : [ |
| '@INPUT@', '@OUTPUT@', |
| '--replace', '@ONE@=1', |
| '--replace', '@TWO@=2', |
| ], |
| output : ['@BASENAME@.f90'], |
| ) |
| |
| exe = executable( |
| 'generator', |
| 'prog.f90', gen.process('mod1.fpp', 'mod2.fpp'), |
| link_with: three, |
| ) |
| test('generator', exe) |