Skip to content

Commit 96360d8

Browse files
messensedavidhewitt
andcommitted
Patch distutils build command to use has_ext_modules()
Co-authored-by: David Hewitt <[email protected]>
1 parent 7578715 commit 96360d8

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
### Fixed
1414
- Use info from sysconfig when cross-compiling. [#139](https://github.com/PyO3/setuptools-rust/pull/139)
15+
- Put Rust extension module binary under `build/lib.*` directory. [#150](https://github.com/PyO3/setuptools-rust/pull/150)
1516

1617
## 0.12.1 (2021-03-11)
1718
### Fixed

setuptools_rust/setuptools_ext.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,25 @@ def get_tag(self):
219219
dist.cmdclass["bdist_wheel"] = bdist_wheel_rust_extension
220220

221221

222+
def patch_distutils_build():
223+
'''Patch distutils to use `has_ext_modules()`
224+
225+
See https://github.com/pypa/distutils/pull/43
226+
'''
227+
from distutils.command import build as _build
228+
229+
class build(_build.build):
230+
def finalize_options(self):
231+
build_lib_user_specified = self.build_lib is not None
232+
super().finalize_options()
233+
if not build_lib_user_specified:
234+
if self.distribution.has_ext_modules():
235+
self.build_lib = self.build_platlib
236+
else:
237+
self.build_lib = self.build_purelib
238+
239+
_build.build = build
240+
222241

223242
def rust_extensions(dist, attr, value):
224243
assert attr == "rust_extensions"
@@ -229,4 +248,5 @@ def rust_extensions(dist, attr, value):
229248
)
230249

231250
if dist.rust_extensions:
251+
patch_distutils_build()
232252
add_rust_extension(dist)

0 commit comments

Comments
 (0)