diff options
author | Alon Zakai <alonzakai@gmail.com> | 2013-05-21 12:41:39 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2013-05-21 12:41:39 -0700 |
commit | 7a0ae20872841e0f3a242fba33cb18e65b95b14e (patch) | |
tree | e1065249f321edcf6d0b0a6a3067bbf0aacafce1 /scons-tools/llvm.py | |
parent | c1c49555772ea8598d3b942f485b907dd49cf0c1 (diff) | |
parent | 184ff9ea2d18c09988226afb90328679e9818d0d (diff) |
Merge pull request #1187 from imvu/scons-embind-build-system
SCons/embind build system
Diffstat (limited to 'scons-tools/llvm.py')
-rwxr-xr-x | scons-tools/llvm.py | 33 |
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) |