summaryrefslogtreecommitdiff
path: root/bindings/python/llvm/common.py
diff options
context:
space:
mode:
Diffstat (limited to 'bindings/python/llvm/common.py')
-rw-r--r--bindings/python/llvm/common.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/bindings/python/llvm/common.py b/bindings/python/llvm/common.py
new file mode 100644
index 0000000000..7818ff41a4
--- /dev/null
+++ b/bindings/python/llvm/common.py
@@ -0,0 +1,37 @@
+#===- common.py - Python LLVM Bindings -----------------------*- python -*--===#
+#
+# The LLVM Compiler Infrastructure
+#
+# This file is distributed under the University of Illinois Open Source
+# License. See LICENSE.TXT for details.
+#
+#===------------------------------------------------------------------------===#
+
+from ctypes import cdll
+
+import ctypes.util
+import platform
+
+__all__ = [
+ "find_library",
+ "get_library",
+]
+
+def find_library():
+ # FIXME should probably have build system define absolute path of shared
+ # library at install time.
+ for lib in ["LLVM-3.1svn", "LLVM"]:
+ result = ctypes.util.find_library(lib)
+ if result:
+ return result
+
+ # FIXME This is a local hack to ease development.
+ return "/usr/local/llvm/lib/libLLVM-3.1svn.so"
+
+def get_library():
+ """Obtain a reference to the llvm library."""
+ lib = find_library()
+ if not lib:
+ raise Exception("LLVM shared library not found!")
+
+ return cdll.LoadLibrary(lib)