mirror of
https://github.com/RetroShare/RetroShare.git
synced 2026-09-12 19:50:17 +05:00
The root build is a modular super-project: libretroshare, retroshare-gui, retroshare-service, retroshare-friendserver and plugins are each a standalone CMake project that the top-level CMakeLists.txt only aggregates (and they live in separate git repos pulled as submodules). Rename project(retroshare-monorepo) -> project(retroshare-superproject) and reword the CI header comments. Purely cosmetic: the old name was referenced nowhere. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
110 lines
3.8 KiB
YAML
110 lines
3.8 KiB
YAML
# Windows (MSYS2 / UCRT64) CMake CI for the RetroShare super-project built against Qt6.
|
|
#
|
|
# Qt6 counterpart of windows-cmake.yml. Same whole-tree build and flags, but the
|
|
# UCRT64 toolchain installs the qt6-* packages (incl. qt6-5compat for the
|
|
# Core5Compat module my version-agnostic CMake requires) and plugins are OFF
|
|
# (VOIP still uses the Qt5-era QtMultimedia API; out of scope for this migration).
|
|
#
|
|
# Submodules are initialised WITHOUT --remote so libretroshare stays on its
|
|
# pinned, CMake-enabled commit.
|
|
#
|
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
|
name: Windows UCRT64 CMake C/C++ CI (Qt6)
|
|
|
|
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 / Qt6 / CMake
|
|
runs-on: windows-latest
|
|
defaults:
|
|
run:
|
|
shell: msys2 {0}
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v5
|
|
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
|
|
perl
|
|
ruby
|
|
mingw-w64-ucrt-x86_64-toolchain
|
|
mingw-w64-ucrt-x86_64-doxygen
|
|
mingw-w64-ucrt-x86_64-cmake
|
|
mingw-w64-ucrt-x86_64-ninja
|
|
mingw-w64-ucrt-x86_64-python
|
|
mingw-w64-ucrt-x86_64-qt6-base
|
|
mingw-w64-ucrt-x86_64-qt6-multimedia
|
|
mingw-w64-ucrt-x86_64-qt6-svg
|
|
mingw-w64-ucrt-x86_64-qt6-5compat
|
|
mingw-w64-ucrt-x86_64-qt6-tools
|
|
mingw-w64-ucrt-x86_64-openssl
|
|
mingw-w64-ucrt-x86_64-libbotan
|
|
mingw-w64-ucrt-x86_64-sqlcipher
|
|
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 windows-cmake.yml (Ninja, shared libretroshare) but with Qt6 and
|
|
# plugins OFF.
|
|
- 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=OFF -DRS_FORUM_DEEP_INDEX=OFF
|
|
-DRS_USE_I2P_SAM3=ON -DRS_BITDHT=ON -DRS_MINIUPNPC=ON
|
|
-DRS_BRODCAST_DISCOVERY=ON -DRS_SQLCIPHER=ON
|
|
-DCMAKE_C_FLAGS="-include string.h -include stdint.h"
|
|
-DCMAKE_CXX_FLAGS="-include cstring -include cstdint -Wno-template-body"
|
|
|
|
- name: CMake build
|
|
run: cmake --build Build-cmake -j3
|