Skip to content

CMakeLists and new python interface

Michael Buehlmann requested to merge master into master

I added a CMakeLists.txt that sets up the same targets as the GNUmakefile, and a python interface based on the pybind11 project.

We can use this pull request to discuss the changes and potential issues. Patricia and me tested part of it on roomba and cooley so far.

The CMake compatibility will allow GenericIO to be included as a nested project in other projects that use CMake (maybe HACC in the future, and I'll test it with an initial condition generator code).

I tried to use modern CMake as much as possible, setting compile/link options on a target level. One thing that is different between the GNUmakefile and this: I compile BLOSC and GenericIO as a (static) library, which is then linked to the executables. I don't think this will cause any performance issues. In the future, we may be able to include BLOSC as a nested subproject too?

I'll do some more testing on different systems, Patricia is working on some benchmarks.

Edited by Michael Buehlmann

Merge request reports