OSDN Git Service

scons: Pass -mstackrealign option to gcc.
[android-x86/external-mesa.git] / scons / llvm.py
index 14306bc..46a8d82 100644 (file)
@@ -29,9 +29,7 @@ Tool-specific initialization for LLVM
 
 import os
 import os.path
-import subprocess
 
-import SCons.Action
 import SCons.Errors
 import SCons.Util
 
@@ -58,22 +56,17 @@ def generate(env):
         env.PrependENVPath('PATH', llvm_bin_dir)
 
     if env.Detect('llvm-config'):
-        pipe = SCons.Action._subproc(env, 
-                                     ['llvm-config', '--version'],
-                                     stdin = 'devnull',
-                                     stderr = 'devnull',
-                                     stdout = subprocess.PIPE)
-        if pipe.wait() != 0:
-            return
-        line = pipe.stdout.read().strip()
-        if not line:
-            return
-        env['LLVM_VERSION'] = line
+        version = env.backtick('llvm-config --version').rstrip()
 
-        env.ParseConfig('llvm-config --cppflags')
-        env.ParseConfig('llvm-config --libs jit interpreter nativecodegen bitwriter')
-        env.ParseConfig('llvm-config --ldflags')
-        env['LINK'] = env['CXX']
+        try:
+            env.ParseConfig('llvm-config --cppflags')
+            env.ParseConfig('llvm-config --libs jit interpreter nativecodegen bitwriter')
+            env.ParseConfig('llvm-config --ldflags')
+        except OSError:
+            print 'llvm-config version %s failed' % version
+        else:
+            env['LINK'] = env['CXX']
+            env['LLVM_VERSION'] = version
 
 def exists(env):
     return True