aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/compilers/compilers.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2019-04-08 20:45:41 +0300
committerNirbheek Chauhan <nirbheek.chauhan@gmail.com>2019-04-09 16:01:52 +0000
commit6fcf6dfd68d80d8e462dea34fa3be7b8010571fe (patch)
tree8127c06a37defc71be9ddc7713f3430c24089cdc /mesonbuild/compilers/compilers.py
parent54db2c9babe6391bba525f92573ceeadb8303e78 (diff)
downloadmeson-6fcf6dfd68d80d8e462dea34fa3be7b8010571fe.zip
meson-6fcf6dfd68d80d8e462dea34fa3be7b8010571fe.tar.gz
meson-6fcf6dfd68d80d8e462dea34fa3be7b8010571fe.tar.bz2
Use LDFLAGS only on languages that need it. Closes #5215.
Diffstat (limited to 'mesonbuild/compilers/compilers.py')
-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)