diff options
Diffstat (limited to 'mesonbuild/compilers')
-rw-r--r-- | mesonbuild/compilers/fortran.py | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/mesonbuild/compilers/fortran.py b/mesonbuild/compilers/fortran.py index 06e01d0..5de1de4 100644 --- a/mesonbuild/compilers/fortran.py +++ b/mesonbuild/compilers/fortran.py @@ -31,6 +31,7 @@ from .compilers import ( IntelVisualStudioLikeCompiler, ) from .clike import CLikeCompiler +from .. import mlog from mesonbuild.mesonlib import ( EnvironmentException, MachineChoice, is_osx, LibType @@ -145,6 +146,25 @@ class FortranCompiler(CLikeCompiler, Compiler): end program main''' return self.find_library_impl(libname, env, extra_dirs, code, libtype) + def has_multi_arguments(self, args, env): + for arg in args[:]: + # some compilers, e.g. GCC, don't warn for unsupported warning-disable + # flags, so when we are testing a flag like "-Wno-forgotten-towel", also + # check the equivalent enable flag too "-Wforgotten-towel" + if arg.startswith('-Wno-'): + args.append('-W' + arg[5:]) + if arg.startswith('-Wl,'): + mlog.warning('{} looks like a linker argument, ' + 'but has_argument and other similar methods only ' + 'support checking compiler arguments. Using them ' + 'to check linker arguments are never supported, ' + 'and results are likely to be wrong regardless of ' + 'the compiler you are using. has_link_argument or ' + 'other similar method can be used instead.' + .format(arg)) + code = 'program main\ncall exit(0)\nend program main' + return self.has_arguments(args, env, code, mode='compile') + class GnuFortranCompiler(GnuCompiler, FortranCompiler): def __init__(self, exelist, version, compiler_type, is_cross, exe_wrapper=None, defines=None, **kwargs): |