[WIP] [PROPOSAL] use scikit-build for packaging#144
[WIP] [PROPOSAL] use scikit-build for packaging#144opadron wants to merge 2 commits intosymengine:masterfrom
Conversation
|
Ditto. Well done.
👍 |
| else: | ||
| print("Value {} for USE_DISTUTILS treated as False". | ||
| format(use_distutils)) | ||
| from skbuild import setup |
There was a problem hiding this comment.
try:
from skbuild import setup
except ImportError:
print('scikit-build is required to build from source.', file=sys.stderr)
print('Please run:', file=sys.stderr)
print('', file=sys.stderr)
print(' python -m pip install scikit-build')
sys.exit(1)
|
Nice. Thanks for this work. I've evaluated scikit-build before, but didn't go with it because we'd be losing some features we have right now. From what I remember some of them are,
I'll have a look at scikit-build code to see how hard it is to add support for these. |
|
1: I'm not sure if this is what you mean, but I don't think there's anything in principle stopping you from repeating the build with whatever versions of python you're willing to support. 2: AFAIK, this would take a little work to add to skbuild. I'll need to check in on the latest concerning our support for in-place builds. 3: Selection and configuration of the compiler would be under the purview of CMake, so you could pass an option to CMake to select your compiler. We may have added |
|
From 1., I meant something like below. Notice the difference between sk-build and setuptools. |
|
Hey, @isuruf sorry for the long silence, but I wanted to let you that we haven't forgotten about this investigation. I'm still very interested in exploring the possibility of improving scikit-build to meet the needs of your project, if you're willing to keep humoring us! :) I now understand better what you were referring to on point 1. Separate build directories based on python version should be a relatively straight-forward add to skb. Do you think we should anticipate the desire to further distinguish environments based on other factors, like toolchain or target architecture? On point 2, I had since been reminded by @jcfr that we do have some support for editable installs, through which I believe the binaries and other assets in a project may be built and assembled in-place (he would be the best person to talk to regarding the details). Would something like this address your needs? |
I'm glad that you are still interested.
We use distutils/setuptools info to generate the build directory. Line 48 in 18b94bc
I looked at it a while ago and if skbuild would set a cmake argument like |
|
FYI, we are building wheels separately here, https://github.com/symengine/symengine-wheels |
|
Moved to scikit-build-core in #523 |
Hi, everyone.
I have a very preliminary fork where I was able to get wheels built for symengine using scikit-build. I wanted to share it with you all early, both to gauge interest in the idea of using scikit-build (and related projects) to assist with packaging and to invite feedback on our approach.
So far, I've only managed to get wheels built locally on my macbook, but I plan on fleshing out the proposed changes and making sure the result builds on windows, and linux, too.