chessx
chessx copied to clipboard
Automation improvements
Revive CI and improve CMake integration, aiming to eventually switch to CMake-based project completely and drop manual package scripts.
Changes
CMake
- Add files added only to
chessx.pro, properly integrate compatibility header. - Borrow snippets from QtCreator's CMake-based project template. Notable changes:
- Require C++17 (Qt6 pre-requisite)
- Support Qt5 and Qt6 in parallel (obviously the source code is not compatible with Qt6 yet)
-
.tsfiles are updated in-place during the build
- Add ability to create source tarball via
CPack. The corresponding script and exclude-list were ported to CMake and dropped. - Add ability to create drag-n-drop
.dmgimage for macOS via CMake. Since additional executables (engines and timeseal won't be distributed, no scripts are needed for installation, and user can simply drag the app intoApplicationsfolder. The look is pretty basic now, later we can customise with a background image, window's size and position.
Tests
- Fix compilation failures due to changed API.
- Fix failure due to
QRegularExpressionbeing more strict to syntax thanQRegExp. - Migrate non-QtTest based tests from
doctest(almost got abandoned some time ago) to more widespread (and even supported by QtCreator)Catch2.
Github CI
- Upgrade
jurplel/install-qt-action. New version handles caching automatically, resulting in a more compact config - Upgrade
lukka/run-vcpkgandlukka/run-cmake. Use the suggested setup withvcpkgas submodule and CMake presets. - Raised Qt version to 5.15. Qt 5.14 is no longer officially supported, and
ExtToolalready usesQProcess::splitCommand()which was introduced in 5.15 - Ensure that qmake project builds on macOS
- Ensure that CMake project builds and passes tests on macOS, Linux and Windows