Building and Installation
Spiner is header-only. It requires C++20, CMake 3.24 or newer, and
Ports-of-Call 3.1.1 or newer. 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
cmake -S . -B bin -DSPINER_BUILD_TESTS=ON -DSPINER_TEST_USE_KOKKOS=OFF
cmake --build bin --parallel 6
ctest --test-dir bin --output-on-failure -j 6
cmake --install bin --prefix /path/to/install
Spiner supports a few cmake configuration options:
SPINER_BUILD_TESTSbuilds tests (default:OFF).SPINER_USE_HDFenables saving and loading tables as hdf5 (default:OFF).SPINER_USE_PORTABLE_NQTselects portable NQT functions (default:OFF).SPINER_TEST_USE_KOKKOSenables Kokkos for tests (default:ONwhen tests are enabled).SPINER_TEST_USE_KOKKOS_CUDAenables CUDA for fetched test Kokkos (default:ON). Set this toOFFfor CPU Kokkos tests.CMAKE_PREFIX_PATHsupplies installed dependency prefixes.FETCHCONTENT_SOURCE_DIR_<NAME>supplies dependency sources, for exampleFETCHCONTENT_SOURCE_DIR_KOKKOS.CMAKE_INSTALL_PREFIXsets the install location.CMAKE_BUILD_TYPEsets the build type.
CMake searches installed packages first, then fetches missing dependencies
where supported. Ports-of-Call must be at least 3.1.1. HDF5 must be installed
when enabled. CUDA tests need an appropriate compiler such as nvcc_wrapper
and Kokkos architecture settings for the target GPU.
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.