aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Lundholm Bertelsen <drixi.b@gmail.com>2021-01-20 18:18:54 +0100
committerJonas Lundholm Bertelsen <drixi.b@gmail.com>2021-01-20 18:18:54 +0100
commitea34a92632a0622bd140ec8160dd721e1f6ba040 (patch)
treeaae760b8cc33755e4cc4e46ee48d54e3415f5813
parentbd2394e8724a7a95f8beeb3839707e495be41fc0 (diff)
downloadmeson-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.py3
-rw-r--r--mesonbuild/backend/ninjabackend.py5
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]