diff options
author | Jonas Lundholm Bertelsen <drixi.b@gmail.com> | 2021-01-20 18:18:54 +0100 |
---|---|---|
committer | Jonas Lundholm Bertelsen <drixi.b@gmail.com> | 2021-01-20 18:18:54 +0100 |
commit | ea34a92632a0622bd140ec8160dd721e1f6ba040 (patch) | |
tree | aae760b8cc33755e4cc4e46ee48d54e3415f5813 | |
parent | bd2394e8724a7a95f8beeb3839707e495be41fc0 (diff) | |
download | meson-ea34a92632a0622bd140ec8160dd721e1f6ba040.zip meson-ea34a92632a0622bd140ec8160dd721e1f6ba040.tar.gz meson-ea34a92632a0622bd140ec8160dd721e1f6ba040.tar.bz2 |
When iterating link_targets, include link_whole_targets too (fortran)
This fixes fortran includes and fortran orderdeps for libraries that
were under link_whole_targets.
-rw-r--r-- | mesonbuild/backend/backends.py | 3 | ||||
-rw-r--r-- | mesonbuild/backend/ninjabackend.py | 5 |
2 files changed, 6 insertions, 2 deletions
diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py index ced1d7d..31ea1dd 100644 --- a/mesonbuild/backend/backends.py +++ b/mesonbuild/backend/backends.py @@ -14,6 +14,7 @@ from collections import OrderedDict from functools import lru_cache +from itertools import chain from pathlib import Path import enum import json @@ -767,7 +768,7 @@ class Backend: # pkg-config puts the thread flags itself via `Cflags:` # Fortran requires extra include directives. if compiler.language == 'fortran': - for lt in target.link_targets: + for lt in chain(target.link_targets, target.link_whole_targets): priv_dir = self.get_target_private_dir(lt) commands += compiler.get_include_args(priv_dir, False) return commands diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py index a008795..6a80299 100644 --- a/mesonbuild/backend/ninjabackend.py +++ b/mesonbuild/backend/ninjabackend.py @@ -2595,7 +2595,10 @@ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47485''')) def get_fortran_orderdeps(self, target, compiler): if compiler.language != 'fortran': return [] - return [os.path.join(self.get_target_dir(lt), lt.get_filename()) for lt in target.link_targets] + return [ + os.path.join(self.get_target_dir(lt), lt.get_filename()) + for lt in itertools.chain(target.link_targets, target.link_whole_targets) + ] def generate_msvc_pch_command(self, target, compiler, pch): header = pch[0] |