aboutsummaryrefslogtreecommitdiff
path: root/scons-tools/llvm.py
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2013-05-21 12:41:39 -0700
committerAlon Zakai <alonzakai@gmail.com>2013-05-21 12:41:39 -0700
commit7a0ae20872841e0f3a242fba33cb18e65b95b14e (patch)
treee1065249f321edcf6d0b0a6a3067bbf0aacafce1 /scons-tools/llvm.py
parentc1c49555772ea8598d3b942f485b907dd49cf0c1 (diff)
parent184ff9ea2d18c09988226afb90328679e9818d0d (diff)
Merge pull request #1187 from imvu/scons-embind-build-system
SCons/embind build system
Diffstat (limited to 'scons-tools/llvm.py')
-rwxr-xr-xscons-tools/llvm.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/scons-tools/llvm.py b/scons-tools/llvm.py
new file mode 100755
index 00000000..f272bd16
--- /dev/null
+++ b/scons-tools/llvm.py
@@ -0,0 +1,33 @@
+from SCons.Scanner.Prog import scan
+from SCons.Builder import Builder
+
+def exists(env):
+ return True
+
+def add_libraries(target, source, env):
+ unique = []
+ lib_nodes = set()
+ for x in scan(None, env, tuple(map(env.Dir, env['LIBPATH']))):
+ if x in lib_nodes:
+ continue
+ lib_nodes.add(x)
+ unique.append(x)
+ return (target, source + unique)
+
+def generate(env):
+ env.SetDefault(
+ CLANG='clang',
+ CLANGXX='clang++',
+ LLVM_DIS='llvm-dis',
+ LLVM_OPT='opt',
+ LLVM_LINK='llvm-link')
+
+ env['BUILDERS']['LLVMDis'] = Builder(
+ action='${LLVM_ROOT}/$LLVM_DIS -o=$TARGET $SOURCE')
+
+ env['BUILDERS']['LLVMOpt'] = Builder(
+ action='${LLVM_ROOT}/$LLVM_OPT $LLVM_OPT_FLAGS $LLVM_OPT_PASSES -o=$TARGET $SOURCE')
+
+ env['BUILDERS']['LLVMLink'] = Builder(
+ action='${LLVM_ROOT}/$LLVM_LINK -o=$TARGET $SOURCES',
+ emitter=add_libraries)