aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/compilers/compilers.py
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2021-03-30 10:22:33 -0700
committerDylan Baker <dylan@pnwbakers.com>2021-04-01 09:54:43 -0700
commitf99ed692c4f10595ccb68407ca618e007125b853 (patch)
tree81d5ef2b4f28e1bfb7c5620ae1a500d7a1c96e9e /mesonbuild/compilers/compilers.py
parent848cacc38c7f5bef2b363b7a1864457e257ebd3d (diff)
downloadmeson-f99ed692c4f10595ccb68407ca618e007125b853.zip
meson-f99ed692c4f10595ccb68407ca618e007125b853.tar.gz
meson-f99ed692c4f10595ccb68407ca618e007125b853.tar.bz2
environment: get environment variables for both host and build machines
Fixes #8605
Diffstat (limited to 'mesonbuild/compilers/compilers.py')
-rw-r--r--mesonbuild/compilers/compilers.py23
1 files changed, 15 insertions, 8 deletions
diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py
index b06f6a5..9b4418b 100644
--- a/mesonbuild/compilers/compilers.py
+++ b/mesonbuild/compilers/compilers.py
@@ -1236,19 +1236,26 @@ def get_global_options(lang: str,
largkey = argkey.evolve('link_args')
envkey = argkey.evolve('env_args')
+ comp_key = argkey if argkey in env.options else envkey
+
+ comp_options = env.options.get(comp_key, [])
+ link_options = env.options.get(largkey, [])
+
cargs = coredata.UserArrayOption(
description + ' compiler',
- env.options.get(argkey, []), split_args=True, user_input=True, allow_dups=True)
- # the compiler args always gets the environemtn variable arguments
- cargs.extend_value(env.options.get(envkey, []))
+ comp_options, split_args=True, user_input=True, allow_dups=True)
largs = coredata.UserArrayOption(
description + ' linker',
- env.options.get(largkey, []), split_args=True, user_input=True, allow_dups=True)
- # The linker gets the compiler environment variable only if the comiler
- # acts as the linker
- if comp.INVOKES_LINKER:
- largs.extend_value(env.options.get(envkey, []))
+ link_options, split_args=True, user_input=True, allow_dups=True)
+
+ if comp.INVOKES_LINKER and comp_key == envkey:
+ # If the compiler acts as a linker driver, and we're using the
+ # environment variable flags for both the compiler and linker
+ # arguments, then put the compiler flags in the linker flags as well.
+ # This is how autotools works, and the env vars freature is for
+ # autotools compatibility.
+ largs.extend_value(comp_options)
opts: 'KeyedOptionDictType' = {argkey: cargs, largkey: largs}