| From 929986e568446f54c2a99c309fbb4d05bd4af00a Mon Sep 17 00:00:00 2001 |
| From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org> |
| Date: Thu, 10 May 2018 08:01:08 +0200 |
| Subject: [PATCH] posix: Also force common toolchain vars for Gentoo |
| |
| --- |
| src/engine/SCons/Platform/posix.py | 20 ++++++++++++++++++++ |
| src/engine/SCons/Tool/cc.py | 3 ++- |
| src/engine/SCons/Tool/cxx.py | 3 ++- |
| src/engine/SCons/Tool/link.py | 3 ++- |
| 4 files changed, 26 insertions(+), 3 deletions(-) |
| |
| diff --git a/src/engine/SCons/Platform/posix.py b/src/engine/SCons/Platform/posix.py |
| index 739310a1..ef7528e0 100644 |
| --- a/src/engine/SCons/Platform/posix.py |
| +++ b/src/engine/SCons/Platform/posix.py |
| @@ -95,6 +95,26 @@ def generate(env): |
| if 'ENV' in env: |
| new_env.update(env['ENV']) |
| env['ENV'] = new_env |
| + |
| + # Furthermore, force common compiler/linker variables as well |
| + envvar_mapping = { |
| + 'AR': 'AR', |
| + 'AS': 'AS', |
| + 'ASFLAGS': 'ASFLAGS', |
| + 'CC': 'CC', |
| + 'CXX': 'CXX', |
| + 'CFLAGS': 'CFLAGS', |
| + 'CXXFLAGS': 'CXXFLAGS', |
| + 'CPPFLAGS': 'CPPFLAGS', |
| + 'LDFLAGS': 'LINKFLAGS', |
| + } |
| + |
| + for envvar, toolvar in envvar_mapping.items(): |
| + if toolvar not in env and envvar in env['ENV']: |
| + val = env['ENV'][envvar] |
| + if toolvar.endswith('FLAGS'): |
| + val = SCons.Util.CLVar(val) |
| + env[toolvar] = val |
| else: |
| if 'ENV' not in env: |
| env['ENV'] = {} |
| diff --git a/src/engine/SCons/Tool/cc.py b/src/engine/SCons/Tool/cc.py |
| index 590ec5fd..5f9229a0 100644 |
| --- a/src/engine/SCons/Tool/cc.py |
| +++ b/src/engine/SCons/Tool/cc.py |
| @@ -80,7 +80,8 @@ def generate(env): |
| |
| if 'CC' not in env: |
| env['CC'] = env.Detect(compilers) or compilers[0] |
| - env['CFLAGS'] = SCons.Util.CLVar('') |
| + if 'CFLAGS' not in env: |
| + env['CFLAGS'] = SCons.Util.CLVar('') |
| env['CCCOM'] = '$CC -o $TARGET -c $CFLAGS $CCFLAGS $_CCCOMCOM $SOURCES' |
| env['SHCC'] = '$CC' |
| env['SHCFLAGS'] = SCons.Util.CLVar('$CFLAGS') |
| diff --git a/src/engine/SCons/Tool/cxx.py b/src/engine/SCons/Tool/cxx.py |
| index 430851c8..ca5ab563 100644 |
| --- a/src/engine/SCons/Tool/cxx.py |
| +++ b/src/engine/SCons/Tool/cxx.py |
| @@ -74,7 +74,8 @@ def generate(env): |
| |
| if 'CXX' not in env: |
| env['CXX'] = env.Detect(compilers) or compilers[0] |
| - env['CXXFLAGS'] = SCons.Util.CLVar('') |
| + if 'CXXFLAGS' not in env: |
| + env['CXXFLAGS'] = SCons.Util.CLVar('') |
| env['CXXCOM'] = '$CXX -o $TARGET -c $CXXFLAGS $CCFLAGS $_CCCOMCOM $SOURCES' |
| env['SHCXX'] = '$CXX' |
| env['SHCXXFLAGS'] = SCons.Util.CLVar('$CXXFLAGS') |
| diff --git a/src/engine/SCons/Tool/link.py b/src/engine/SCons/Tool/link.py |
| index 5adc6ca2..a12ea8ed 100644 |
| --- a/src/engine/SCons/Tool/link.py |
| +++ b/src/engine/SCons/Tool/link.py |
| @@ -318,7 +318,8 @@ def generate(env): |
| |
| env['SMARTLINK'] = smart_link |
| env['LINK'] = "$SMARTLINK" |
| - env['LINKFLAGS'] = SCons.Util.CLVar('') |
| + if 'LINKFLAGS' not in env: |
| + env['LINKFLAGS'] = SCons.Util.CLVar('') |
| |
| # __RPATH is only set to something ($_RPATH typically) on platforms that support it. |
| env['LINKCOM'] = '$LINK -o $TARGET $LINKFLAGS $__RPATH $SOURCES $_LIBDIRFLAGS $_LIBFLAGS' |
| -- |
| 2.20.1 |
| |