diff options
author | H. Vetinari <h.vetinari@gmx.com> | 2023-09-29 08:59:34 +1100 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2023-12-11 21:54:47 +0200 |
commit | cc5a95a56ac0e12441361938c7c6b34ea1669621 (patch) | |
tree | 96d5194728b5e279c15113cb522d486eaf095495 | |
parent | fbb8030b277970f7edf293b3438f28a7317693b1 (diff) | |
download | meson-cc5a95a56ac0e12441361938c7c6b34ea1669621.zip meson-cc5a95a56ac0e12441361938c7c6b34ea1669621.tar.gz meson-cc5a95a56ac0e12441361938c7c6b34ea1669621.tar.bz2 |
detect windows linkers for flang in detect_fortran_compiler
-rw-r--r-- | mesonbuild/compilers/detect.py | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/mesonbuild/compilers/detect.py b/mesonbuild/compilers/detect.py index 10bbf5f..6ff99c5 100644 --- a/mesonbuild/compilers/detect.py +++ b/mesonbuild/compilers/detect.py @@ -779,8 +779,20 @@ def detect_fortran_compiler(env: 'Environment', for_machine: MachineChoice) -> C if 'flang' in out or 'clang' in out: cls = fortran.FlangFortranCompiler - linker = guess_nix_linker(env, - compiler, cls, version, for_machine) + if 'windows' in out or env.machines[for_machine].is_windows(): + # If we're in a MINGW context this actually will use a gnu + # style ld, but for flang on "real" windows we'll use + # either link.exe or lld-link.exe + try: + linker = guess_win_linker( + env, compiler, cls, version, + for_machine, invoked_directly=False + ) + except MesonException: + pass + if linker is None: + linker = guess_nix_linker(env, compiler, cls, + version, for_machine) return cls( compiler, version, for_machine, is_cross, info, exe_wrap, full_version=full_version, linker=linker) |