Refer to LICENSE.md for further information. In its default install mode, CMake removes all RPATHs, which means that a binary’s shared library dependencies can and will change from the build-time linking if there are different versions of the same shared library installed on the system, compared to what it was linked with when it was built. Nlohmann_json will automatically be used, found in the thirdParty/īy setting the CMake parameter PIC_nlohmann_json_PROVIDER=extern, CMakeĬan be instructed to search for an installation of nlohmann_json externally. If PIConGPU is built with openPMD output enabled, the JSON library Otherwise, these parameters are set to ON automatically if CMake detects the dependencies on your system.Įnvironment:* (assumes install from source in $HOME/lib/openPMD-api)Įxport CMAKE_PREFIX_PATH="$HOME/lib/openPMD-api:$CMAKE_PREFIX_PATH"Įxport LD_LIBRARY_PATH="$HOME/lib/openPMD-api/lib64:$HOME/lib/openPMD-api/lib:$LD_LIBRARY_PATH" Optionally, specify the parameters -DopenPMD_USE_ADIOS2=ON -DopenPMD_USE_HDF5=ON. DopenPMD_USE_MPI=ON -DCMAKE_INSTALL_PREFIX=~/lib/openPMD-api The parameters -DHDF5_BUILD_CPP_LIB=OFF -DHDF5_ENABLE_PARALLEL=ON are required, the CMAKE_INSTALL_PREFIX should be set to a fitting location.Ĭmake.
The default configuration should generally be sufficient, the CMAKE_INSTALL_PREFIX should be set to a fitting location.įor HDF5, CMake build instructions can be found in the official documentation. sudo apt-get update sudo apt-get install autoconf automake autopoint build-essential cmake git libass-dev libbz2-dev libfontconfig1-dev libfreetype6-dev libfribidi-dev libharfbuzz-dev libjansson-dev liblzma-dev libmp3lame-dev libnuma-dev libogg-dev libopus-dev libsamplerate-dev libspeex-dev libtheora-dev libtool libtool. When building the openPMD API from source (described below), these dependencies must be built and installed first.įor ADIOS2, CMake build instructions can be found in the official documentation. b2 installĮnvironment: (assumes install from source in $HOME/lib/boost)Įxport LD_LIBRARY_PATH=$BOOST_ROOT/lib:$LD_LIBRARY_PATHįor usage in PIConGPU, the openPMD API must have been built either with support for ADIOS2 or HDF5 (or both). bootstrap.sh -with-libraries=atomic,chrono,context,date_time,fiber,filesystem,math,program_options,serialization,system,thread -prefix=$HOME/lib/boost 1.66.0 - 1.74.0 ( program_options, filesystem, system, math, serialization and header-only libs, optional: fiber with context, thread, chrono, atomic, date_time)ĭebian/Ubuntu: sudo apt-get install libboost-program-options-dev libboost-filesystem-dev libboost-system-dev libboost-thread-dev libboost-chrono-dev libboost-atomic-dev libboost-date-time-dev libboost-math-dev libboost-serialization-dev libboost-fiber-dev libboost-context-dev