# Installation This section provides an overview of the build and test environment for Perseid developers. For detailed build commands, see [Building](building.md). For running tests, see [Testing](testing.md). ## Core build requirements - C++23 compiler (clang++ 19 or later) - CMake 3.31+ - PostgreSQL development libraries (libpq) - yaml-cpp 0.9+ - argparse (p-ranav/argparse) The `reltypes` and `reldb` classes come from the reldbase project (codeberg.org/perseas/reldbase), fetched automatically via CMake's `FetchContent` and pinned to a known-good commit. ## Documentation requirements (optional) - Doxygen - Python 3 with the Sphinx packages listed in `docs/requirements.txt` ## Testing requirements - boost::ut for unit tests - Catch2 for integration tests ## Dependencies | Library | Version | Purpose | |---------|---------|---------| | libpq | 18+ | PostgreSQL client library | | yaml-cpp | 0.9+ | YAML parsing and emission | | reldbase | pinned via FetchContent | `reltypes` and `reldb` classes | | argparse | 3.2+ | Command-line argument parsing | | Catch2 | 3.15+ | Testing framework (tests only) | | Boost::ut | 2.3+ | Testing framework (tests only) | ### Installing dependencies on Debian/Ubuntu ```bash sudo apt-get install libpq-dev ``` yaml-cpp, argparse, and the test frameworks can be installed locally or fetched via CMake's `FetchContent`. reldbase is always fetched via `FetchContent`.