Getting started¶
What you'll need¶
- A C++23 compiler: GCC 14+, Clang 18+, or MSVC 19.40+ (VS 2022 17.10+ / VS 18).
- CMake 4.0+ and Ninja.
- Git — vcpkg is vendored as a submodule at
deps/vcpkg, so there's nothing to install machine-wide for it. It provides Catch2 for the test suite, pinned to the submodule commit. - Qt 6.8 — only needed if you want to build the GUI app (the default).
Qt ships as an official prebuilt package rather than being built from
source (a from-source Qt build is huge, and on Windows its build tree
overruns
MAX_PATH). Install it withci/install-qt.ps1(Windows) orci/install-qt.sh(Linux/macOS) — both use aqtinstall. See CI & dependencies for details.
Clone¶
git clone --recurse-submodules https://github.com/iainchesworth/CountdownSolver
Already cloned without --recurse-submodules? Run:
git submodule update --init --depth 1 deps/vcpkg
Build and run¶
# Configure + build the full project (library, Qt app, tests) with a preset.
# Every preset states its build type explicitly: <toolchain>-debug or
# <toolchain>-release, e.g. windows-msvc-debug, linux-gcc-release,
# linux-clang-debug, macos-clang-release, windows-clang-debug.
cmake --preset windows-msvc-debug -DCMAKE_PREFIX_PATH=<qt>/6.8.3/<arch>
cmake --build --preset windows-msvc-debug
# Run the app.
./build/windows-msvc-debug/bin/countdownsolver
Just want the solver library and tests, no Qt/GUI?
cmake --preset linux-gcc-debug -DCOUNTDOWN_BUILD_APP=OFF
cmake --build --preset linux-gcc-debug
ctest --preset linux-gcc-debug
vcpkg bootstraps itself automatically on first configure — no manual
vcpkg install step.
For the full picture — every preset, sanitizer flags, and cpack
packaging — see Building & packaging. For the test suite
and coverage gate, see Testing & coverage.
Using your own word list¶
The letters game ships with a bundled dictionary (~122k words). To use your
own instead, drop a newline-delimited word list at <config-dir>/words.txt
(the app reports the exact path per platform in Settings) and restart
the app.