summaryrefslogtreecommitdiff
path: root/scons/llvm.py
diff options
context:
space:
mode:
authorJosé Fonseca <jfonseca@vmware.com>2009-10-22 19:11:48 +0100
committerJosé Fonseca <jfonseca@vmware.com>2009-10-22 19:12:14 +0100
commitbf48447cafc8069839ad41c9c11078c794f4b307 (patch)
treec94484e884860b9348c5dd473b47f3b568a09a3f /scons/llvm.py
parent719984afca3864cfe86ca734f3e2bd6eb5834bd1 (diff)
scons: Hack LLVM support on Windows.
Doesn't quite work yet though, as small differences in the compilation flags used when building LLVM and Mesa cause link failures for STL symbols.
Diffstat (limited to 'scons/llvm.py')
-rw-r--r--scons/llvm.py45
1 files changed, 43 insertions, 2 deletions
diff --git a/scons/llvm.py b/scons/llvm.py
index d3293bb404f..73e9310f71b 100644
--- a/scons/llvm.py
+++ b/scons/llvm.py
@@ -29,6 +29,7 @@ Tool-specific initialization for LLVM
import os
import os.path
+import sys
import SCons.Errors
import SCons.Util
@@ -39,7 +40,7 @@ def generate(env):
llvm_dir = os.environ['LLVM']
except KeyError:
# Do nothing -- use the system headers/libs
- pass
+ llvm_dir = None
else:
if not os.path.isdir(llvm_dir):
raise SCons.Errors.InternalError, "Specified LLVM directory not found"
@@ -57,7 +58,47 @@ def generate(env):
env.PrependENVPath('PATH', llvm_bin_dir)
- if env.Detect('llvm-config'):
+ if env['msvc']:
+ # XXX: There is no llvm-config on Windows, so assume a standard layout
+ if llvm_dir is not None:
+ env.Prepend(CPPPATH = [os.path.join(llvm_dir, 'include')])
+ env.Prepend(LIBPATH = [os.path.join(llvm_dir, 'lib')])
+ env.Prepend(LIBS = [
+ 'LLVMBitWriter',
+ 'LLVMCore',
+ 'LLVMSupport',
+ 'LLVMSystem',
+ 'LLVMSupport',
+ 'LLVMSystem',
+ 'LLVMCore',
+ 'LLVMCodeGen',
+ 'LLVMSelectionDAG',
+ 'LLVMAsmPrinter',
+ 'LLVMBitReader',
+ 'LLVMBitWriter',
+ 'LLVMTransformUtils',
+ 'LLVMInstrumentation',
+ 'LLVMScalarOpts',
+ 'LLVMipo',
+ 'LLVMHello',
+ 'LLVMLinker',
+ 'LLVMAnalysis',
+ 'LLVMipa',
+ 'LLVMX86CodeGen',
+ 'LLVMX86AsmPrinter',
+ 'LLVMExecutionEngine',
+ 'LLVMInterpreter',
+ 'LLVMJIT',
+ 'LLVMTarget',
+ 'LLVMAsmParser',
+ 'LLVMDebugger',
+ 'LLVMArchive',
+ 'imagehlp',
+ 'psapi',
+ ])
+ env['LLVM_VERSION'] = '2.5'
+ return
+ elif env.Detect('llvm-config'):
version = env.backtick('llvm-config --version').rstrip()
try: