aboutsummaryrefslogtreecommitdiff
path: root/scons-tools/llvm.py
diff options
context:
space:
mode:
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)