Development Environment - ShadobaDev/Platemaker-qt GitHub Wiki

Development environment

Everything to install before the first build.

Requirements

Tool Version Notes
Qt 6.8+ Widgets module required
CMake 3.21+ Presets format v6
MSVC 2022 or MinGW (MSYS2) — Windows
GCC / Clang — Linux
libplatemaker 0.4.1+ See Building

Toolchains cannot be mixed. C++ has no standard ABI, so a library built with MSVC is not usable from a MinGW-built GUI and vice versa. Whichever you choose, libplatemaker must be built with the same one. The GUI is developed against MinGW.

Windows — MSVC

Install Visual Studio 2022 with the Desktop development with C++ workload, which brings the compiler, CMake, Ninja and the Windows SDK.

Then install Qt through the Qt online installer, selecting the matching MSVC kit.

Windows — MinGW via MSYS2

Install MSYS2, then from the MinGW64 terminal install just the toolchain:

pacman -S \
  mingw-w64-x86_64-gcc \
  mingw-w64-x86_64-ninja

Since libplatemaker 0.3.1 the MinGW build fetches its own libvips (the same pinned "web" build the MSVC branch uses), so you no longer need the mingw-w64-x86_64-libvips package or a PKG_CONFIG_PATH variable. The one requirement is the PATH entry:

Setting Value
PATH entry C:\msys64\mingw64\bin

That makes gcc, g++ and ninja available in any terminal, not only inside an MSYS2 shell.

Linux

Tested on Ubuntu 22.04.

sudo apt update
sudo apt install -y build-essential cmake ninja-build pkg-config git libvips-dev

Qt comes from the Qt online installer or your distribution's packages.

Qt Creator

The GUI is developed and run from Qt Creator, which handles the Windows runtime DLL setup for you. Open CMakeLists.txt as a project and select the kit matching your toolchain.

Pointing the build at a local libplatemaker is the one piece of per-machine configuration — see Building.

Debugger

Optional, but useful for crashes and hangs. Match the debugger to the toolchain, because the two symbol formats are not interchangeable:

Toolchain Debugger Install
MinGW (MSYS2) GDB — reads DWARF pacman -S mingw-w64-x86_64-gdb
Linux GDB sudo apt install gdb
MSVC Visual Studio debugger — reads PDB ships with VS

To dump every thread's stack of an already-running process:

gdb -p <pid> -batch -ex "thread apply all bt"

See also: Building · Development · Contributing

⚠️ **GitHub.com Fallback** ⚠️