mdavidsaver / setuptools_dso

setuptools extension for building non-Python Dynamic Shared Objects
Other
9 stars 6 forks source link

build inplace fixes #2

Closed navytux closed 4 years ago

navytux commented 4 years ago

Hello up there. First of all - thanks a lot for setuptools_dso. Please find attached patches that fix "build inplace" behaviour.

Kirill

navytux commented 4 years ago

(if the changes are accepted, I would suggest to adapt CI scripts to rely on testme.sh - at least on unix)

navytux commented 4 years ago

( amended "Fix inplace build" with the following interdiff:

--- a/testme.sh
+++ b/testme.sh
@@ -33,7 +33,7 @@ git clean -fdx        # `setup.py clean` does not clean inplace built files

 # build + install
-echo -e '\n* build + install'
+echo -e '\n* build + install\n'
 "$PYTHON" setup.py clean -a
 git clean -fdx
 "$PYTHON" -m dsodemo.cli 2>/dev/null && die "error: worktree must be clean"

)

mdavidsaver commented 4 years ago

Looks good. I'm happy to hear that you found this package useful, and thanks for fixing!

navytux commented 4 years ago

@mdavidsaver, thanks for feedback and for merging. Yes I find setuptools_dso useful, especially since in setuptools they gave up on Library.

FYI I've also hit RPATH related bug when linking to external DSO. The test that reproduces it is here:

https://lab.nexedi.com/kirr/setuptools_dso/commit/cae39469

However since there is impedance mismatch between namespaces of python import (which is structured) and DSO namespace as implemented by dynamic linker (which is flat), I'm not sure how to fix it universally (i.e. for pip install, pip install -e and setup.py install cases.

Kirill