diff --git a/src/bindings/python/SConscript b/src/bindings/python/SConscript index 0a905b7a6341bcc014a91658ce77b9b77a99fb4c..dcea2056a726211a91f0aec793b39b4e4bdf9bb2 100644 --- a/src/bindings/python/SConscript +++ b/src/bindings/python/SConscript @@ -17,13 +17,13 @@ swig = pythonenv.Command("hammer.i", "../swig/hammer.i", Copy("$TARGET", "$SOURC setup = ['setup.py'] pydir = os.path.join(env['BUILD_BASE'], 'src/bindings/python') #libhammer_python = pythonenv.SharedLibrary('hammer', swig, SHLIBPREFIX='_') -libhammer_python = pythonenv.Command(None, [swig, setup], 'python ' + os.path.join(pydir, 'setup.py') + ' build_ext --swig-opts="-outdir ' + pydir + ' -DHAMMER_INTERNAL__NO_STDARG_H -Isrc"') +libhammer_python = pythonenv.Command(['hammer.py', 'hammer_wrap.c'], [swig, setup], 'python ' + os.path.join(pydir, 'setup.py') + ' build_ext --inplace') Default(libhammer_python) pytestenv = pythonenv.Clone() pytestenv['ENV']['LD_LIBRARY_PATH'] = os.path.dirname(str(libhammer_shared[0])) pytests = ['hammer_tests.py'] -pytestexec = pytestenv.Command(['hammer.pyc', 'hammer_tests.pyc'], pytests + libhammer_python, "nosetests -vv $SOURCE") +pytestexec = pytestenv.Command(['hammer.pyc', 'hammer_tests.pyc'], pytests + libhammer_python, "LD_LIBRARY_PATH=" + os.path.dirname(str(libhammer_shared[0])) + " nosetests -vv $SOURCE") pytest = Alias("testpython", [pytestexec], pytestexec) AlwaysBuild(pytest) testruns.append(pytest) diff --git a/src/bindings/python/setup.py b/src/bindings/python/setup.py index 2f42fa060a29f71d4ab9f7c7e026ea2e4c5eeeb5..720590e69c4dfa29ebb9a8e42de93c23adef5b8e 100644 --- a/src/bindings/python/setup.py +++ b/src/bindings/python/setup.py @@ -3,18 +3,22 @@ """ setup.py for Hammer bindings """ -import os.path, sys +import os, os.path, sys from distutils.core import setup, Extension +invoked = os.getcwd() +os.chdir(os.path.dirname(sys.argv[0])) + setup(name="hammer", version="0.9.0", author="Upstanding Hackers, LLC", author_email="hammer@upstandinghackers.com", url="https://github.com/UpstandingHackers/hammer", description="""The Hammer parser combinator library""", - ext_modules=[Extension('_hammer', [os.path.join(os.path.dirname(sys.argv[0]), - 'hammer.i')], - # swig_opts is set by SConscript + ext_modules=[Extension('_hammer', ['hammer.i'], + swig_opts=['-DHAMMER_INTERNAL__NO_STDARG_H', + #('-outdir', os.getcwd()), + '-I../../'], define_macros=[('SWIG', None)], depends=['allocator.h', 'glue.h', @@ -22,9 +26,11 @@ setup(name="hammer", 'internal.h',], extra_compile_args=['-fPIC', '-std=gnu99',], - include_dirs=['src'], - library_dirs=['src'], + include_dirs=['../../'], + library_dirs=['../../'], libraries=['hammer'],)], py_modules=['hammer'], ) + +os.chdir(invoked)