diff options
author | Nirbheek Chauhan <nirbheek@centricular.com> | 2020-05-14 09:41:12 +0530 |
---|---|---|
committer | Nirbheek Chauhan <nirbheek.chauhan@gmail.com> | 2020-05-14 09:31:16 +0000 |
commit | 37bade6f8760a4e443a8daddbcf6acd4e84b5eab (patch) | |
tree | 2fb42044df32cb81ca2ff42a00439c5ccbcf2722 | |
parent | 57e55b1a9ddce282f0b5d0508139f0f06ce952e5 (diff) | |
download | meson-37bade6f8760a4e443a8daddbcf6acd4e84b5eab.zip meson-37bade6f8760a4e443a8daddbcf6acd4e84b5eab.tar.gz meson-37bade6f8760a4e443a8daddbcf6acd4e84b5eab.tar.bz2 |
gfortran: Fix has_header implementation with GCC 10
__has_include is not accepted as a pre-processor directive in Fortran
code since GCC 10.
Closes https://github.com/mesonbuild/meson/issues/7017
-rw-r--r-- | mesonbuild/compilers/fortran.py | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/mesonbuild/compilers/fortran.py b/mesonbuild/compilers/fortran.py index 01283a1..c155b5b 100644 --- a/mesonbuild/compilers/fortran.py +++ b/mesonbuild/compilers/fortran.py @@ -214,6 +214,18 @@ class GnuFortranCompiler(GnuCompiler, FortranCompiler): def language_stdlib_only_link_flags(self) -> T.List[str]: return ['-lgfortran', '-lm'] + def has_header(self, hname, prefix, env, *, extra_args=None, dependencies=None, disable_cache=False): + ''' + Derived from mixins/clike.py:has_header, but without C-style usage of + __has_include which breaks with GCC-Fortran 10: + https://github.com/mesonbuild/meson/issues/7017 + ''' + fargs = {'prefix': prefix, 'header': hname} + code = '{prefix}\n#include <{header}>' + return self.compiles(code.format(**fargs), env, extra_args=extra_args, + dependencies=dependencies, mode='preprocess', disable_cache=disable_cache) + + class ElbrusFortranCompiler(GnuFortranCompiler, ElbrusCompiler): def __init__(self, exelist, version, for_machine: MachineChoice, is_cross, info: 'MachineInfo', exe_wrapper=None, |