Init commit for work on new binding
This contains the foundation for the new binding as well as early work on Module and Type.
This commit is contained in:
parent
b793e72189
commit
a12c4da93d
23 changed files with 1477 additions and 0 deletions
54
newbinding/setup.py
Normal file
54
newbinding/setup.py
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
import sys, os
|
||||
from distutils.core import setup, Extension
|
||||
|
||||
llvm_config = os.environ.get('LLVM_CONFIG_PATH')
|
||||
|
||||
def run_llvm_config(args):
|
||||
cmd = llvm_config + ' ' + ' '.join(args)
|
||||
return os.popen(cmd).read().rstrip()
|
||||
|
||||
def get_libs_and_objs(components):
|
||||
parts = run_llvm_config(['--libs'] + components).split()
|
||||
libs = []
|
||||
objs = []
|
||||
for part in parts:
|
||||
if part.startswith('-l'):
|
||||
libs.append(part[2:])
|
||||
elif part.endswith('.o'):
|
||||
objs.append(part)
|
||||
return libs, objs
|
||||
|
||||
incdir = run_llvm_config(['--includedir'])
|
||||
libdir = run_llvm_config(['--libdir'])
|
||||
ldflags = run_llvm_config(['--ldflags'])
|
||||
macros = [('__STDC_CONSTANT_MACROS', None),
|
||||
('__STDC_LIMIT_MACROS', None)]
|
||||
|
||||
extra_link_args = ldflags.split()
|
||||
|
||||
libs_core, objs_core = get_libs_and_objs(['core', 'analysis', 'scalaropts',
|
||||
'executionengine', 'jit', 'native',
|
||||
'interpreter', 'bitreader',
|
||||
'bitwriter', 'instrumentation', 'ipa',
|
||||
'ipo', 'transformutils', 'asmparser',
|
||||
'linker', 'support', 'vectorize'])
|
||||
|
||||
ext_modules = [Extension(name='_api',
|
||||
sources=['api.cpp'],
|
||||
include_dirs = ['include', incdir],
|
||||
library_dirs = [libdir],
|
||||
libraries = libs_core,
|
||||
define_macros = macros,
|
||||
extra_objects = objs_core,
|
||||
extra_link_args = extra_link_args),
|
||||
Extension(name='_capsule',
|
||||
sources=['capsule.cpp'],
|
||||
include_dirs = ['include'],),
|
||||
]
|
||||
|
||||
|
||||
setup(name = 'llvmpy2',
|
||||
description = 'Python bindings for LLVM',
|
||||
author = 'Siu Kwan Lam',
|
||||
ext_modules = ext_modules,
|
||||
license = "BSD")
|
||||
Loading…
Add table
Add a link
Reference in a new issue