It looks like you have to have CMake installed though (http://scikit-build.readthedocs.io/en/latest/installation.html). This is a hurdle in itself.
The docs are a little out-of-date. This patch will bring them up to speed: https://github.com/scikit-build/scikit-build/pull/339 With pip 10, there is no need to worry about installing CMake since there is a cmake PyPI package and the dependency can be added to pyproject.toml.
There are binary wheels (https://pypi.org/project/cmake) and it's packaged for conda, plus good binary installers - for a development setup that's about as easy as it is going to get.
Yes, and quite a few folks are successfully using the cmake PyPI package, over 8,000 a month according to current stats: https://pypistats.org/packages/cmake
Can you (and maybe Ralf) be more specific --- in what way there are problems?
What advantages scikit-build (which glues CMake and setuptools together) brings?
A good summary is given in the recent SciPy 2018 Conference talk by @jcfr (in CC): https://www.youtube.com/watch?v=QVkg-cC5oe4
Of course, distutils forces you to do CFLAGS/etc customization via environment variables, and BLAS/LAPACK selection via site.cfg which is not so convenient.
Yes -- scikit-build supports CFLAGS, etc. environmental variables but you can also pass flags and build configuration options more generally and more explicitly in the `python setup.py [...]` call. CMake has good discovery of BLAS/LAPACK, but you can also easily and robustly override what would be discovered through system introspection. Reference LAPACK uses CMake for its build system, so it fits in nicely.
Related: scikit-build seems to have quite a bit of momentum. I've never used CMake before, and while I know opinions on CMake aren't 100% positive, scikit-build looks like a significant improvement over distutils. I think we should try to integrate it at some point in the coming year.
Hi! As a potential contributor to SciPy I would say that one of the things I’m most excited about, and one of the things that has kept me from getting too deeply involved in the C/C++ parts of NumPy/SciPy is the lack of proper IDE support. CMake solves this to an extent. I’ve found myself to be relatively comfortable with projects that used CMake rather than (for example) GNU Make or Autotools for the same reason.
Yes, with CMake you can generate a build system or IDE of preference, i.e. Visual Studio, XCode, Sublime Text, Eclipse, various Makefile's, Ninja files, ... The full list can be found here: https://cmake.org/cmake/help/latest/manual/cmake-generators.7.html Hope this helps, Matt