|
|
||
|---|---|---|
| .idea | ||
| .junie/skills | ||
| core | ||
| docs | ||
| pglab | ||
| pglablib | ||
| pgsql | ||
| releasenotes | ||
| tests | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| AGENTS.md | ||
| CMakeLists.txt | ||
| README.md | ||
| vcpkg.json | ||
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 is generated automatically when a commit is tagged. It also includes releasenotes. The release notes use collected from git using reno.
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_ROOTenvironment 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.
Building on Windows
Tested with Visual Studio 2022 (Professional) and Qt 6.8.2 (MSVC 2022, 64-bit). Run these commands from a "x64 Native Tools Command Prompt for VS 2022", with VCPKG_ROOT set and Qt installed in C:\Qt\6.8.2\msvc2022_64:
cmake -S . -B build -G "Visual Studio 17 2022" -A x64 -DCMAKE_TOOLCHAIN_FILE=%VCPKG_ROOT%\scripts\buildsystems\vcpkg.cmake -DCMAKE_PREFIX_PATH=C:/Qt/6.8.2/msvc2022_64
cmake --build build --config Release
ctest --test-dir build -C Release --output-on-failure
The executables are placed in build\pglab\Release\pglab.exe and build\tests\*\Release\. They need the Qt and vcpkg DLLs next to them. Run windeployqt on pglab.exe and on each test executable, and copy the vcpkg runtime DLLs from build\vcpkg_installed\x64-windows\bin into the same folders. For the app:
C:\Qt\6.8.2\msvc2022_64\bin\windeployqt.exe --release build\pglab\Release\pglab.exe
If another Qt installation (for example one shipped with another program) is on your PATH, its Qt6Core.dll may be loaded instead, which causes "entry point not found" errors at startup. Deploying the DLLs next to the executables avoids this.
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