chessx icon indicating copy to clipboard operation
chessx copied to clipboard

Automation improvements

Open erysaj opened this issue 3 years ago • 0 comments

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)
    • .ts files 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 .dmg image 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 into Applications folder. 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 QRegularExpression being more strict to syntax than QRegExp.
  • 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-vcpkg and lukka/run-cmake. Use the suggested setup with vcpkg as submodule and CMake presets.
  • Raised Qt version to 5.15. Qt 5.14 is no longer officially supported, and ExtTool already uses QProcess::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

erysaj avatar Nov 20 '22 16:11 erysaj