1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
From 68fc19b7fd6b65ab850e4fd8ef5e85c672989f92 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 af34650c..5533c87c 100644
--- a/src/engine/SCons/Platform/posix.py
+++ b/src/engine/SCons/Platform/posix.py
@@ -93,6 +93,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 07e92507..614d1779 100644
--- a/src/engine/SCons/Tool/link.py
+++ b/src/engine/SCons/Tool/link.py
@@ -292,7 +292,8 @@ def generate(env):
env.Append(SHLIBEMITTER = [shlib_emitter])
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'
env['LIBDIRPREFIX']='-L'
--
2.17.0
|