# 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 = custom_target( 'mod3.f', input : 'mod3.f90', output : 'mod3.f90', # We need a platform agnostic way to do a copy a file, using a custom_target # and we need to use the @OUTDIR@, not @OUTPUT@ in order to exercise # https://github.com/mesonbuild/meson/issues/9258 command : [ find_program('python', 'python3'), '-c', 'import sys, shutil; shutil.copy(sys.argv[1], sys.argv[2])', '@INPUT@', '@OUTDIR@', ], ) 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('generated', sources, link_with: three) test('generated', exe)