diff --git a/site_scons/erw.py b/site_scons/erw.py index 9ac6aa3..b5fbe0e 100644 --- a/site_scons/erw.py +++ b/site_scons/erw.py @@ -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)