The Meson Build System
http://mesonbuild.com/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1.2 KiB
39 lines
1.2 KiB
# 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)
|
|
|