aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/compilers/compilers.py13
1 files changed, 12 insertions, 1 deletions
diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py
index 208389e..e29ca55 100644
--- a/mesonbuild/compilers/compilers.py
+++ b/mesonbuild/compilers/compilers.py
@@ -67,6 +67,8 @@ for _l in clink_langs + ('vala',):
clink_suffixes += lang_suffixes[_l]
clink_suffixes += ('h', 'll', 's')
+# Languages that should use LDFLAGS arguments when linking.
+languages_using_ldflags = ('objcpp', 'cpp', 'objc', 'c', 'fortran', 'd', 'cuda')
soregex = re.compile(r'.*\.so(\.[0-9]+)?(\.[0-9]+)?(\.[0-9]+)?$')
# Environment variables that each lang uses.
@@ -976,6 +978,12 @@ class Compiler:
"""
return self.get_language() in {'c', 'cpp', 'objc', 'objcpp'}
+ def use_ldflags(self) -> bool:
+ """
+ Whether the compiler (or processes it spawns) cares about LDFLAGS
+ """
+ return self.get_language() in languages_using_ldflags
+
def get_args_from_envvars(self):
"""
Returns a tuple of (compile_flags, link_flags) for the specified language
@@ -1004,7 +1012,10 @@ class Compiler:
compile_flags += shlex.split(env_compile_flags)
# Link flags (same for all languages)
- env_link_flags = os.environ.get('LDFLAGS')
+ if self.use_ldflags():
+ env_link_flags = os.environ.get('LDFLAGS')
+ else:
+ env_link_flags = None
log_var('LDFLAGS', env_link_flags)
if env_link_flags is not None:
link_flags += shlex.split(env_link_flags)