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