Building
To build the complete project including all included crates requires some configuration beforehand.
Install Dependencies
First install the Rust compiler to actually compile the project. Use your package manager or set up in your local user home.
# For rpm based distributions (Fedora, CentOS, Rocky, ...)
$ sudo dnf install cargo
# For apt based distributions (Debian, Ubuntu, ...)
$ sudo apt update
$ sudo apt install cargo
# For Arch Linux and its derivatives
$ sudo pacman -Sy cargo
You'll need atleast version 1.61. Most package manager should deliver this or more recent version - rustup will always deliver the most up-to-date version.
Then install the required system dependencies for bindgen and the JULEA bindings.
Fedora/RHEL
$ sudo dnf install glib2 glib2-devel libbson libbson-devel clang make pkgconf libpmem libpmem-devel
Ubuntu/Debian/...
$ sudo apt update
$ sudo apt install libglib2.0-0 libglib2.0-dev libbson-1.0-0 libbson-dev clang make pkg-config libpmem1 libpmem-dev
Arch Linux+
Arch Linux does not package libpmem, if you want to use it you may try the AUR. Otherwise, compile without the
nvm
feature.
$ sudo pacman -Sy glib2 clang make libbson pkgconf
Prepare the environment
This step can be skipped if you do not need to use the JULEA interface. See betree.
To compile the bindings you'll need JULEA present and specify it's headers in your environemnt.
$ git clone https://github.com/parcio/julea.git
To build the complete Haura project from this state, execute:
$ export JULEA_INCLUDE=$PWD/julea/include
$ export BINDGEN_EXTRA_CLANG_ARGS="$(pkg-config --cflags glib-2.0) $(pkg-config --cflags libbson-1.0)"
$ cd haura
$ cargo build