Fix up how CC, CXX, and LINK are set in environments
This commit is contained in:
parent
b1f11e9732
commit
b745019f39
1 changed files with 7 additions and 10 deletions
|
@ -17,15 +17,17 @@ class Environment(SCons.Environment.Environment):
|
|||
'''
|
||||
|
||||
def __init__(self, name, modern=True, paranoid=True, colorful=True, succinct=True, **kwargs):
|
||||
# Use clang if its available.
|
||||
kwargs.setdefault('CC', self._toolchain_binary(('clang', 'gcc')))
|
||||
kwargs.setdefault('CXX', self._toolchain_binary(('clang++', 'g++')))
|
||||
kwargs.setdefault('LINK', self._toolchain_binary(('clang++')))
|
||||
|
||||
super(Environment, self).__init__(**kwargs)
|
||||
|
||||
self['NAME'] = name
|
||||
|
||||
if 'CC' not in kwargs:
|
||||
self['CC'] = self.Detect(['clang', 'gcc'])
|
||||
if 'CXX' not in kwargs:
|
||||
self['CXX'] = self.Detect(['clang++', 'g++'])
|
||||
if 'LINK' not in kwargs:
|
||||
self['LINK'] = self.Detect(['clang++', 'clang', 'ld'])
|
||||
|
||||
# Modern C/C++
|
||||
if modern:
|
||||
self.Append(CFLAGS=['-std=c99'])
|
||||
|
@ -51,11 +53,6 @@ class Environment(SCons.Environment.Environment):
|
|||
self['SHCXXCOMSTR'] = self._comstr('Building (C++, Shared)', succinct)
|
||||
self['SHLINKCOMSTR'] = self._comstr('Linking (Shared)', succinct)
|
||||
|
||||
def _toolchain_binary(self, binaries):
|
||||
for b in binaries:
|
||||
if b and paths.which(b):
|
||||
return b
|
||||
|
||||
def _comstr(self, action, succinct=True):
|
||||
if succinct:
|
||||
return '{:>25}: $TARGET'.format(action)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue