aboutsummaryrefslogtreecommitdiff
path: root/scons-tools/llvm.py
diff options
context:
space:
mode:
authorChad Austin <chad@imvu.com>2013-05-17 12:08:55 -0700
committerChad Austin <chad@imvu.com>2013-05-17 13:04:02 -0700
commitec19fe482bf564de68a076ed093af131d502bb30 (patch)
treeee317bc543e16c363ceb8601cc9dacddd1a8dd91 /scons-tools/llvm.py
parentd641184152923a119b3c2b7fd51acc71997ff0cd (diff)
Move emscripten SCons tools into emscripten/scons-tools/
Diffstat (limited to 'scons-tools/llvm.py')
-rwxr-xr-xscons-tools/llvm.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/scons-tools/llvm.py b/scons-tools/llvm.py
new file mode 100755
index 00000000..2e03caa3
--- /dev/null
+++ b/scons-tools/llvm.py
@@ -0,0 +1,26 @@
+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['BUILDERS']['LLVMDis'] = Builder(
+ action='${LLVM_ROOT}/llvm-dis -o=$TARGET $SOURCE')
+
+ env['BUILDERS']['LLVMOpt'] = Builder(
+ action='${LLVM_ROOT}/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)