scons: fix llvm detection
authorBrian Paul <brianp@vmware.com>
Thu, 20 May 2010 16:25:17 +0000 (10:25 -0600)
committerBrian Paul <brianp@vmware.com>
Thu, 20 May 2010 16:27:12 +0000 (10:27 -0600)
The test for env['platform'] caused an exception since 'env' is not
defined at that point.  Instead, determine the target platform by
scanning sys.argv[].

common.py

index 300e91a3766a282f526ae0a44c34833060ac41f3..e396ad949108c8a95eddb1c21fd4ae0b55258593 100644 (file)
--- a/common.py
+++ b/common.py
@@ -3,6 +3,7 @@
 
 import os
 import os.path
+import re
 import subprocess
 import sys
 import platform as _platform
@@ -37,9 +38,18 @@ default_machine = _machine_map.get(default_machine, 'generic')
 if 'LLVM' in os.environ:
     default_llvm = 'yes'
 else:
+    # Search sys.argv[] for a "platform=foo" argument since we don't have
+    # an 'env' variable at this point.
+    platform = default_platform
+    pattern = re.compile("(platform=)(.*)")
+    for arg in sys.argv:
+        m = pattern.match(arg)
+        if m:
+            platform = m.group(2)
+
     default_llvm = 'no'
     try:
-        if env['platform'] != 'windows' and subprocess.call(['llvm-config', '--version'], stdout=subprocess.PIPE) == 0:
+        if platform != 'windows' and subprocess.call(['llvm-config', '--version'], stdout=subprocess.PIPE) == 0:
             default_llvm = 'yes'
     except:
         pass