Building and Installation

Spiner is self-contained and header-only. Clone it as:

git clone --recursive git@github.com:lanl/spiner.git

Building from source

To build tests and install:

cd spiner  # cd to repo root
mkdir bin
cd bin
cmake -DBUILD_TESTING=ON ..
make -j
make test
make install

Spiner supports a few cmake configuration options:

  • BUILD_TESTING enables tests

  • SPINER_USE_HDF5 enables support for saving and loading tables as hdf5.

  • SPINER_HDF5_INSTALL_DIR tells the build system where hdf5 is located.

  • SPINER_USE_KOKKOS enables Kokkos as a backend

  • SPINER_USE_KOKKOS_SRC tells the build system to build Kokkos from source, and where the source directory is located. Note that if you use this option, you cannot install Spiner, only build the tests.

  • SPINER_KOKKOS_INSTALL_DIR tells the build system where to find pre-compiled Kokkos

  • SPINER_USE_CUDA enables the Kokkos cuda backend

  • CMAKE_INSTALL_PREFIX sets the install location

  • CMAKE_BUILD_TYPE sets the build type

  • SPINER_FORCE_INTERNAL_PORTS forces use of a ports-of-call submodule rather than a system install

HDF5 is searched for and configured via the usual cmake machinery.

A format_spiner target is also added if clang-format is found, so that make format_spiner will auto-format the repository.

Testing is enabled via Catch2, which is automatically downloaded during the cmake configure phase if needed.

Spack

Spiner is available through Spack. If you have spack installed, simply call:

spack install spiner

Including Spiner in your Project

Spiner can be included into a cmake project, either in-tree as a submodule or after installation via find_package. The cmake system provides the spiner::spiner cmake target.