aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH. Vetinari <h.vetinari@gmx.com>2023-09-29 08:59:34 +1100
committerJussi Pakkanen <jpakkane@gmail.com>2023-12-11 21:54:47 +0200
commitcc5a95a56ac0e12441361938c7c6b34ea1669621 (patch)
tree96d5194728b5e279c15113cb522d486eaf095495
parentfbb8030b277970f7edf293b3438f28a7317693b1 (diff)
downloadmeson-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.py16
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)