Python libraries are often distributed via pypi.org, where users are used to just typing
pip install xyz to obtain a library. On pypi libraries are often packaged as
wheels, which are archives with name specifiers which say what platform/python version they are built for. For CFML to be more widely used, it is important that it is compatible with this install method. As it contains Fortran code, this has turned out to be non trivial.
This pull request introduces the
setup.py file for python packaging and changes to Cmake to make it more universal. To build the library, simply call
python setup.py bdist_wheel. Currently:
- On Linux, building can be performed on the users system, however the manylinux docker image and the script
Scripts/buildwheel.shshould be considered as the resulting package is linux distribution agnostic. The resulting wheel does not depend on python 3.x version
- On OSX, The resulting wheel does not depend on python 3.x version but the python package
delocateshould be used to add the necessary libraries to the wheel.
- On Windows things are not as easy. A package has to be built for each python version and the python package
delvewheelshould be used to add the necessary libraries to the wheel.
Example wheels and workflow can be found at https://github.com/easyScience/CFML_builder/actions/runs/1054660703 (Available 90 days from 22/07/2021)