The recommended way to install the HEPnOS and its dependencies is to use Spack. Spack is a package management tool designed to support multiple versions and configurations of software on a wide variety of platforms and environments.
First, you will need to install Spack as explained here. Once Spack is installed and available in your path, clone the following git reporitory and add it as a Spack namespace.
git clone https://github.com/mochi-hpc/mochi-spack-packages.git
spack repo add mochi-spack-packages
You can then check that Spack can find HEPnOS by typping:
spack info hepnos
You should see something like the following.
CMakePackage: hepnos
Description:
Object store for High Energy Physics, build around Mochi components
Homepage: https://github.com/hepnos/HEPnOS
... (more lines follow) ...
Installing HEPnOS is then as simple as typping the following.
spack install hepnos
Once installed, you can load HEPnOS using the following command.
spack load hepnos
This will load HEPnOS and its dependencies (Mercury, Thallium, Argobots, etc.). You are now ready to use HEPnOS!
Within a cmake project, HEPnOS can be found using:
find_package(hepnos REQUIRED)
You can now link targets as follows.
add_executable(my_hepnos_client source.c)
target_link_libraries(my_hepnos_client hepnos)
Support for pkg-config is still preliminary and not completely supported. Once loaded into your working environment, pkg-config --libs --cflags hepnos
will give you the CFLAGS and LDFLAGS you need to link your code against HEPnOS. However this command will not give you CFLAGS or LDFLAGS for the Boost serialization library, which does not itself support pkg-config. You will have to add these manually.