Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Automation improvements #86

Open
wants to merge 14 commits into
base: master
Choose a base branch
from
Open

Conversation

erysaj
Copy link
Contributor

@erysaj erysaj commented Nov 20, 2022

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
Copy link
Contributor Author

erysaj commented Feb 6, 2025

Hey @Isarhamster, I've noticed that you managed to review some PRs recently. I suppose I'll redo this one, but I've got a couple of questions about minimum requirements:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant