Build¶
CMake-based. Out-of-source builds in build/.
Quick start¶
The output binary lands at build/kartoza-screencaster. Inside the
dev shell, cb does all of the above.
Build acceleration¶
CMake auto-detects and uses ccache (compiler cache) and mold (fast
linker) when they are present — both ship in the Nix dev shell — on top of the
Ninja generator. Look for Using ccache: … and Using mold linker: … in
the configure output. See Dev shell → Build acceleration
for how each tool speeds up the edit-build-run loop. Nothing to configure; a
build without them just falls back to the default compiler/linker.
Tests¶
CI runs the same command on Ubuntu 24.04 / macOS / Windows.
Release build¶
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build
strip build/kartoza-screencaster
The release.yml GitHub workflow runs this for every tag and uploads
artefacts to the release page.
Toggles¶
| CMake variable | Effect |
|---|---|
CMAKE_BUILD_TYPE=Debug |
Assertions on, optimisation off, symbols. |
CMAKE_BUILD_TYPE=Release |
Optimised, no debug symbols (strip after). |
CMAKE_BUILD_TYPE=RelWithDebInfo |
Optimised, symbols kept. |
D-Bus / portal is gated by find_package(Qt6 COMPONENTS DBus) on
Linux only — the Windows and macOS builds do not compile the portal
module.