The program is build with Qt 6.8 using QtCreator and the Visual Studio 2022 C++ compiler. Only 64-bits builds are actively maintained. [Documentation](https://eelke.gitlab.io/pgLab/) is generated automatically when a commit is tagged. It also includes releasenotes. The release notes use collected from git using [reno](https://docs.openstack.org/reno/latest/index.html). ## Dependencies - boost - botan - googletest - libpq Boost, Botan, libpq and googletest are provided by vcpkg through the manifest in `vcpkg.json`, so you do not install them manually. ## Required tools - CMake 3.21 or newer - A C++20 compiler (GCC or Clang on Linux, Visual Studio 2022 on Windows) - Qt 6 with the Core, Gui, Widgets, Sql and Concurrent components - vcpkg, with the `VCPKG_ROOT` environment variable pointing to its checkout - Ninja or make (optional, for faster builds) - A PostgreSQL server (only needed to run the application against a database) ## Building Configure with the vcpkg toolchain file. The first configure downloads and builds the dependencies, which takes a while: ``` cmake -S . -B build -DCMAKE_TOOLCHAIN_FILE=$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake cmake --build build ``` To skip the test executables, add `-DBUILD_TESTS=OFF` to the configure command. ## Running the tests From the build directory, run: ``` ctest --output-on-failure ``` ## Running the application The executable is built to `build/pglab/pglab`. On a machine without a display, set `QT_QPA_PLATFORM=offscreen`: ``` ./build/pglab/pglab ```