Closed balbasty closed 4 years ago
Is this related to it being difficult to share the code using pip/conda?
pip install nitorch
If not, maybe that should be another issue/todo?
It’s more like a prerequisite. If all options of setup.py work, it becomes possible to build os-specific wheels, which can be uploaded to PyPI.
pip install
then automatically downloads those wheels from PyPI.
Okay
The current build systems uses the
distutils.Extension
system to compile non-python shared library that actual extensions link against. This means that the location of the built libraries must be known to link the final extension, but this location is within the temporary build directory, which is not known from outsidebuild_ext
. Furthermore, dependencies are not handled, so parallel build cannot be used.As a prerequisite, note that we currently implement our own (extension of)
build_ext
inbuildtools.py
. This class handles cuda files andSharedLibrary
extensions.SharedLibrary
is a subclass ofExtension
that specifies that the extension is not a python extension but a dynamic library against which python extension can link.Potential solutions:
depends
keyword would accept references to Extension objects on top of filenames