diff options
Diffstat (limited to 'src/engine/SCons/Tool/clang.py')
| -rw-r--r-- | src/engine/SCons/Tool/clang.py | 18 | 
1 files changed, 15 insertions, 3 deletions
diff --git a/src/engine/SCons/Tool/clang.py b/src/engine/SCons/Tool/clang.py index 1271378..f48afbf 100644 --- a/src/engine/SCons/Tool/clang.py +++ b/src/engine/SCons/Tool/clang.py @@ -11,7 +11,7 @@ selection method.  """  # -# Copyright (c) 2001 - 2017 The SCons Foundation +# Copyright (c) 2001 - 2019 The SCons Foundation  #  # Permission is hereby granted, free of charge, to any person obtaining  # a copy of this software and associated documentation files (the @@ -33,7 +33,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -# __revision__ = "src/engine/SCons/Tool/clang.py rel_3.0.0:4395:8972f6a2f699 2017/09/18 12:59:24 bdbaddog" +# __revision__ = "src/engine/SCons/Tool/clang.py e724ae812eb96f4858a132f5b8c769724744faf6 2019-07-21 00:04:47 bdeegan"  # Based on SCons/Tool/gcc.py by Paweł Tomulik 2014 as a separate tool.  # Brought into the SCons mainline by Russel Winder 2017. @@ -45,6 +45,8 @@ import sys  import SCons.Util  import SCons.Tool.cc +from SCons.Tool.clangCommon import get_clang_install_dirs +  compilers = ['clang'] @@ -52,11 +54,20 @@ def generate(env):      """Add Builders and construction variables for clang to an Environment."""      SCons.Tool.cc.generate(env) +    if env['PLATFORM'] == 'win32': +        # Ensure that we have a proper path for clang +        clang = SCons.Tool.find_program_path(env, compilers[0],  +                                             default_paths=get_clang_install_dirs(env['PLATFORM'])) +        if clang: +            clang_bin_dir = os.path.dirname(clang) +            env.AppendENVPath('PATH', clang_bin_dir) +      env['CC'] = env.Detect(compilers) or 'clang'      if env['PLATFORM'] in ['cygwin', 'win32']:          env['SHCCFLAGS'] = SCons.Util.CLVar('$CCFLAGS')      else:          env['SHCCFLAGS'] = SCons.Util.CLVar('$CCFLAGS -fPIC') +      # determine compiler version      if env['CC']:          #pipe = SCons.Action._subproc(env, [env['CC'], '-dumpversion'], @@ -66,7 +77,8 @@ def generate(env):                                       stdout=subprocess.PIPE)          if pipe.wait() != 0: return          # clang -dumpversion is of no use -        line = pipe.stdout.readline() +        with pipe.stdout: +            line = pipe.stdout.readline()          if sys.version_info[0] > 2:              line = line.decode()          match = re.search(r'clang +version +([0-9]+(?:\.[0-9]+)+)', line)  | 
