project('FortranStd', 'fortran', default_options: ['warning_level=0']) # As with C and C++, each Fortran compiler + version has a subset of supported Fortran standards # Additionally, a necessary option for non-standard Fortran projects is the "legacy" # option, which allows non-standard syntax and behavior quirks. # Thus "legacy" is a necessity for some old but important Fortran projects. # By default, popular Fortran compilers disallow these quirks without "legacy" option. fc = meson.get_compiler('fortran') executable('stdnone', 'std95.f90') executable('std_legacy', 'legacy.f', override_options : ['fortran_std=legacy']) executable('std_95', 'std95.f90', override_options : ['fortran_std=f95']) executable('std_f2003', 'std2003.f90', override_options : ['fortran_std=f2003']) executable('std_f2008', 'std2008.f90', override_options : ['fortran_std=f2008']) if fc.get_id() == 'gcc' if fc.version().version_compare('>=8.0') executable('std_f2018', 'std2018.f90', override_options : ['fortran_std=f2018']) endif else executable('std_f2018', 'std2018.f90', override_options : ['fortran_std=f2018']) endif