[pypy-commit] cffi default: hg merge embedding-pypy-win32
arigo
pypy.commits at gmail.com
Thu Feb 11 09:22:04 EST 2016
Author: Armin Rigo <arigo at tunes.org>
Branch:
Changeset: r2626:6e18e1a827d0
Date: 2016-02-11 15:21 +0100
http://bitbucket.org/cffi/cffi/changeset/6e18e1a827d0/
Log: hg merge embedding-pypy-win32
Thanks matti for the initial work!
diff --git a/cffi/api.py b/cffi/api.py
--- a/cffi/api.py
+++ b/cffi/api.py
@@ -550,10 +550,19 @@
lst.append(value)
#
if '__pypy__' in sys.builtin_module_names:
- if hasattr(sys, 'prefix'):
- import os
- ensure('library_dirs', os.path.join(sys.prefix, 'bin'))
- pythonlib = "pypy-c"
+ if sys.platform == "win32":
+ # we need 'libpypy-c.lib' (included with recent pypy distrib)
+ # in addition to the runtime 'libpypy-c.dll'
+ pythonlib = "libpypy-c"
+ if hasattr(sys, 'prefix'):
+ ensure('library_dirs', sys.prefix)
+ else:
+ # we need 'libpypy-c.{so,dylib}', which should be by
+ # default located in 'sys.prefix/bin'
+ pythonlib = "pypy-c"
+ if hasattr(sys, 'prefix'):
+ import os
+ ensure('library_dirs', os.path.join(sys.prefix, 'bin'))
else:
if sys.platform == "win32":
template = "python%d%d"
diff --git a/testing/embedding/test_basic.py b/testing/embedding/test_basic.py
--- a/testing/embedding/test_basic.py
+++ b/testing/embedding/test_basic.py
@@ -118,12 +118,18 @@
def execute(self, name):
path = self.get_path()
env_extra = {'PYTHONPATH': prefix_pythonpath()}
- libpath = os.environ.get('LD_LIBRARY_PATH')
- if libpath:
- libpath = path + ':' + libpath
+ if sys.platform == 'win32':
+ _path = os.environ.get('PATH')
+ # for libpypy-c.dll or Python27.dll
+ _path = os.path.split(sys.executable)[0] + ';' + _path
+ env_extra['PATH'] = _path
else:
- libpath = path
- env_extra['LD_LIBRARY_PATH'] = libpath
+ libpath = os.environ.get('LD_LIBRARY_PATH')
+ if libpath:
+ libpath = path + ':' + libpath
+ else:
+ libpath = path
+ env_extra['LD_LIBRARY_PATH'] = libpath
print('running %r in %r' % (name, path))
executable_name = name
if sys.platform == 'win32':
More information about the pypy-commit
mailing list