mirror of
https://github.com/RetroShare/RetroShare.git
synced 2026-09-14 11:06:01 +05:00
ci: add Windows (MSYS2 UCRT64) CMake workflow building the full tree
CMake counterpart of the legacy qmake ci-ucrt64.yml, but builds the whole tree (service/friendserver/sam3/rnp/plugins all ON) with Ninja and a shared libretroshare, mirroring the user's validated local Windows command. Submodules init without --remote (like the Linux/macOS CMake CIs). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
0abb7888fd
commit
dd0bd44f94
107
.github/workflows/windows-cmake.yml
vendored
Normal file
107
.github/workflows/windows-cmake.yml
vendored
Normal file
@ -0,0 +1,107 @@
|
||||
# Windows (MSYS2 / UCRT64) CMake CI for the RetroShare monorepo.
|
||||
#
|
||||
# CMake counterpart of the legacy qmake ci-ucrt64.yml. Unlike that one (GUI-only,
|
||||
# sam3 disabled, mingw32-make), this builds the WHOLE tree with the same feature
|
||||
# set as the Linux/macOS CMake CIs, using Ninja and the user's validated local
|
||||
# Windows command (shared libretroshare).
|
||||
#
|
||||
# Submodules are initialised WITHOUT --remote (identical to ubuntu-cmake.yml) so
|
||||
# libretroshare stays on its pinned, CMake-enabled commit. On WIN32 libretroshare
|
||||
# pulls restbed via FetchContent, so the restbed submodule is unused there.
|
||||
#
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
name: Windows UCRT64 CMake C/C++ CI
|
||||
|
||||
on:
|
||||
push:
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
pull_request:
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.head_ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Windows UCRT64 / Qt5 / CMake
|
||||
runs-on: windows-latest
|
||||
defaults:
|
||||
run:
|
||||
shell: msys2 {0}
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Setup MSYS2 (UCRT64)
|
||||
uses: msys2/setup-msys2@40677d36a502eb2cf0fb808cc9dec31bf6152638 # v2.28.0
|
||||
with:
|
||||
msystem: UCRT64
|
||||
update: true
|
||||
install: >-
|
||||
base-devel
|
||||
git
|
||||
doxygen
|
||||
perl
|
||||
ruby
|
||||
mingw-w64-ucrt-x86_64-toolchain
|
||||
mingw-w64-ucrt-x86_64-cmake
|
||||
mingw-w64-ucrt-x86_64-ninja
|
||||
mingw-w64-ucrt-x86_64-python
|
||||
mingw-w64-ucrt-x86_64-qt5-base
|
||||
mingw-w64-ucrt-x86_64-qt5-multimedia
|
||||
mingw-w64-ucrt-x86_64-qt5-svg
|
||||
mingw-w64-ucrt-x86_64-qt5-tools
|
||||
mingw-w64-ucrt-x86_64-openssl
|
||||
mingw-w64-ucrt-x86_64-libbotan
|
||||
mingw-w64-ucrt-x86_64-sqlcipher
|
||||
mingw-w64-ucrt-x86_64-xapian-core
|
||||
mingw-w64-ucrt-x86_64-miniupnpc
|
||||
mingw-w64-ucrt-x86_64-json-c
|
||||
mingw-w64-ucrt-x86_64-rapidjson
|
||||
mingw-w64-ucrt-x86_64-asio
|
||||
mingw-w64-ucrt-x86_64-libxml2
|
||||
mingw-w64-ucrt-x86_64-libxslt
|
||||
mingw-w64-ucrt-x86_64-speex
|
||||
mingw-w64-ucrt-x86_64-speexdsp
|
||||
mingw-w64-ucrt-x86_64-ffmpeg
|
||||
mingw-w64-ucrt-x86_64-bzip2
|
||||
mingw-w64-ucrt-x86_64-zlib
|
||||
|
||||
# Same pinned-commit init as the Ubuntu/macOS CMake CI (no --remote); librnp
|
||||
# needs --recursive for its nested src/libsexpp.
|
||||
- name: Init submodules (pinned commits)
|
||||
run: |
|
||||
git submodule update --init \
|
||||
libbitdht/ libretroshare/ openpgpsdk/ retroshare-webui/
|
||||
git submodule update --init --recursive \
|
||||
supportlibs/librnp
|
||||
git submodule update --init \
|
||||
supportlibs/restbed supportlibs/libsam3 \
|
||||
supportlibs/udp-discovery-cpp supportlibs/rapidjson
|
||||
git --no-pager -C libretroshare log --max-count 1 --oneline
|
||||
|
||||
# Mirrors the validated local Windows command (Ninja, shared libretroshare).
|
||||
- name: CMake configure
|
||||
run: >
|
||||
cmake -G Ninja -B Build-cmake -S .
|
||||
-DCMAKE_POLICY_VERSION_MINIMUM=3.5
|
||||
-DCMAKE_BUILD_TYPE=Release
|
||||
-DRS_LIBRETROSHARE_STATIC=OFF -DRS_LIBRETROSHARE_SHARED=ON
|
||||
-DRS_RNPLIB=ON -DRS_JSON_API=ON -DRS_WEBUI=ON
|
||||
-DRS_GUI=ON -DRS_SERVICE=ON -DRS_FRIENDSERVER=ON
|
||||
-DRS_PLUGINS=ON -DRS_FORUM_DEEP_INDEX=ON
|
||||
-DRS_USE_I2P_SAM3=ON -DRS_BITDHT=ON -DRS_MINIUPNPC=ON
|
||||
-DRS_BRODCAST_DISCOVERY=ON -DRS_SQLCIPHER=ON
|
||||
|
||||
- name: CMake build
|
||||
run: cmake --build Build-cmake -j3
|
||||
Loading…
Reference in New Issue
Block a user