parent
071b1612b2
commit
f4360f0a89
@ -18,6 +18,7 @@ from setuptools import setup, Extension, find_packages
|
|||||||
|
|
||||||
from distutils.command.build_py import build_py as _build_py
|
from distutils.command.build_py import build_py as _build_py
|
||||||
from distutils.command.clean import clean as _clean
|
from distutils.command.clean import clean as _clean
|
||||||
|
from distutils.command.build_ext import build_ext as _build_ext
|
||||||
from distutils.spawn import find_executable
|
from distutils.spawn import find_executable
|
||||||
|
|
||||||
# Find the Protocol Compiler.
|
# Find the Protocol Compiler.
|
||||||
@ -157,6 +158,22 @@ class build_py(_build_py):
|
|||||||
if not any(fnmatch.fnmatchcase(fil, pat=pat) for pat in exclude)]
|
if not any(fnmatch.fnmatchcase(fil, pat=pat) for pat in exclude)]
|
||||||
|
|
||||||
|
|
||||||
|
class build_ext(_build_ext):
|
||||||
|
def get_ext_filename(self, ext_name):
|
||||||
|
# since python3.5, python extensions' shared libraries use a suffix that corresponds to the value
|
||||||
|
# of sysconfig.get_config_var('EXT_SUFFIX') and contains info about the architecture the library targets.
|
||||||
|
# E.g. on x64 linux the suffix is ".cpython-XYZ-x86_64-linux-gnu.so"
|
||||||
|
# When crosscompiling python wheels, we need to be able to override this suffix
|
||||||
|
# so that the resulting file name matches the target architecture and we end up with a well-formed
|
||||||
|
# wheel.
|
||||||
|
filename = _build_ext.get_ext_filename(self, ext_name)
|
||||||
|
orig_ext_suffix = sysconfig.get_config_var("EXT_SUFFIX")
|
||||||
|
new_ext_suffix = os.getenv("PROTOCOL_BUFFERS_OVERRIDE_EXT_SUFFIX")
|
||||||
|
if new_ext_suffix and filename.endswith(orig_ext_suffix):
|
||||||
|
filename = filename[:-len(orig_ext_suffix)] + new_ext_suffix
|
||||||
|
return filename
|
||||||
|
|
||||||
|
|
||||||
class test_conformance(_build_py):
|
class test_conformance(_build_py):
|
||||||
target = 'test_python'
|
target = 'test_python'
|
||||||
def run(self):
|
def run(self):
|
||||||
@ -291,6 +308,7 @@ if __name__ == '__main__':
|
|||||||
cmdclass={
|
cmdclass={
|
||||||
'clean': clean,
|
'clean': clean,
|
||||||
'build_py': build_py,
|
'build_py': build_py,
|
||||||
|
'build_ext': build_ext,
|
||||||
'test_conformance': test_conformance,
|
'test_conformance': test_conformance,
|
||||||
},
|
},
|
||||||
install_requires=install_requires,
|
install_requires=install_requires,
|
||||||
|
Loading…
Reference in New Issue
Block a user