Installation#

System Setup#

Install required system packages:

sudo apt update
sudo apt upgrade
sudo apt install cmake ccache
sudo apt install -y build-essential python3-dev

Virtual Environment for Python Interface#

Create and activate a Python virtual environment:

sudo apt install python3-venv
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Building the Project#

Release Build#

cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DSALTRO_BUILD_PYTHON=ON
cmake --build build -j

Debug Build#

For debugging with gdb, use Debug mode:

sudo apt install gdb
cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug -DSALTRO_BUILD_PYTHON=ON
cmake --build build -j

Testing#

Run the test suite:

cd build
ctest --output-on-failure
cd ../tests
pytest -q

Documentation Generation#

Set up the documentation environment:

python3 -m venv venv
pip install breathe pydata_sphinx_theme
sudo apt install doxygen
source venv/bin/activate

Generate the documentation:

cd docs/
doxygen
python3 generate_rst.py
python3 -m sphinx -W -b html source build

Cleaning Up Documentation Build#

To clean up documentation build artifacts, remove these directories:

rm -rf docs/build
rm -rf docs/source/api
rm -rf docs/source/html
rm -rf docs/source/latex
rm -rf docs/source/xml