Building

Build steps

git clone https://codeberg.org/perseas/perseid.git
cd perseid
cmake -B build -DCMAKE_BUILD_TYPE=Debug
cmake --build build -j$(nproc)

Build targets

Target

Description

dbtoyaml

Database-to-YAML CLI tool

yamltodb

YAML-to-database CLI tool

cmdargs

Shared command-line parsing for the CLI tools

database

Database, Database_map, and Config classes

dbobject

Schema, table, column, constraint classes

<object>_test (see below)

dbobject unit tests (boost::ut)

test_<object> (see below)

object integration tests (Catch2)

reldb_integration

reldb integration tests (Catch2)

test_filmversions

Functional migration tests (Catch2)

There is generally one unit test and one integration test for each kind of database object.

Test databases

Running the integration suite requires a local PostgreSQL server and a test database. Functional tests require an additional database. See testing.

Documentation

The docs target builds the documentation by default.

Building documentation

pip install -r docs/requirements.txt
cmake --build build --target docs

This runs Doxygen to extract API docs, then Sphinx to generate the HTML site in build/docs/html/.