Installation¶
Dependencies¶
Required¶
- Meson (>= 1.2) and Ninja -- build system
- Available via package managers (
apt,brew,dnf) orpip install meson ninja
- Available via package managers (
- LZ4 -- compression library
- Available via package managers; if missing, built automatically from WrapDB
Optional¶
- ROOT (>= 6.28) -- only needed for
HipoDataFrameextension and ROOT examples - fmt (>= 10.2.0) -- formatting library; built from WrapDB if not found
- pybind11 (>= 2.11) -- only needed for Python bindings (
hipopy); install withpip install pybind11 - NumPy -- required at runtime for Python bindings; install with
pip install numpy - Awkward Array -- optional, for ragged array support in Python; install with
pip install awkward
Building¶
Create a build directory and configure:
meson setup build --prefix=$(pwd)/install
Compile, test, and install:
cd build
ninja # compile
ninja test # run tests
ninja install # install to prefix
Build Options¶
| Option | Default | Description |
|---|---|---|
build_examples |
true |
Build example programs |
install_examples |
false |
Install example programs |
install_root_tools |
false |
Install ROOT-based tools |
python_bindings |
false |
Build pybind11 Python bindings (hipopy) |
Set options with meson configure:
meson configure build -Dbuild_examples=false
Python Bindings¶
To build the Python bindings, enable the python_bindings option:
meson setup build -Dpython_bindings=true
ninja -C build
Verify the installation:
import hipopy
print(hipopy.Schema) # <class 'hipopy._hipo.Schema'>
See Python API Reference for full documentation.
Using the Installed Library¶
After installation, source the environment script:
source install/libexec/hipo4/this_hipo.sh
Or for csh/tcsh:
source install/libexec/hipo4/this_hipo.csh
pkg-config¶
The installed library provides a pkg-config file:
pkg-config --cflags --libs hipo4
Building Documentation¶
If Doxygen is installed, API documentation can be generated:
ninja -C build docs