Skip to content

CI: add vcpkg.yml

CI: add vcpkg.yml #4

Workflow file for this run

name: vcpkg
on:
push:
pull_request:
jobs:
use_vcpkg:
strategy:
matrix:
include:
- CMAKE_GENERATOR_PLATFORM: x64
CMAKE_GENERATOR: "Visual Studio 17 2022"
VCPKG_TARGET_TRIPLET: x64-windows
VCPKG_PLATFORM_TOOLSET: v143
os: windows-2022
- VCPKG_TARGET_TRIPLET: x64-osx
os: macos-15-intel
# See: [About GitHub-hosted runners](https://docs.github.com/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners)
# See: [Choosing the runner for a job](https://docs.github.com/actions/writing-workflows/choosing-where-your-workflow-runs/choosing-the-runner-for-a-job)
# See: https://github.com/actions/runner-images/
runs-on: ${{matrix.os}}
env:
BUILD_DIR: ${{github.workspace}}\build
SOURCE_DIR: ${{github.workspace}}\.cache\source
TOOLS_DIR: ${{github.workspace}}\.cache\tools
INSTALL_DIR: ${{github.workspace}}\.cache\install
VCPKGGITCOMMITID: 7213cf8135c329c37c7e2778e40774489a0583a8
VCPKG_TARGET_TRIPLET: ${{matrix.VCPKG_TARGET_TRIPLET}}
VCPKG_DEFAULT_TRIPLET: ${{matrix.VCPKG_TARGET_TRIPLET}}
VCPKG_PLATFORM_TOOLSET: ${{matrix.VCPKG_PLATFORM_TOOLSET}}
VCPKG_MANIFEST_FEATURES: "freerdp;vnc;terminal;filetransfer;qt"
VCPKG_INSTALLED_DIR: ${{github.workspace}}\.cache\install
CMAKE_GENERATOR: ${{matrix.CMAKE_GENERATOR}}
CMAKE_GENERATOR_PLATFORM: ${{matrix.CMAKE_GENERATOR_PLATFORM}}
qt_modules: "${{matrix.qt_modules}}"
artifact_name: build_msvc
RabbitRemoteControl_VERSION: v0.0.36
# Map the job outputs to step outputs
outputs:
name: ${{ env.artifact_name }}
steps:
- name: Checkout Repository
uses: actions/checkout@v3
with:
submodules: recursive
fetch-depth: 0
- name: Make directories
run: |
cmake -E make_directory ${{env.BUILD_DIR}}
cmake -E make_directory ${{env.SOURCE_DIR}}
cmake -E make_directory ${{env.TOOLS_DIR}}
cmake -E make_directory ${{env.INSTALL_DIR}}
- name: Cache installed
uses: actions/cache@v4
id: cache-installed
with:
path: |
${{env.INSTALL_DIR}}
key: install_msvc_qt${{matrix.qt_version}}_${{matrix.qt_arch}}_${{matrix.BUILD_TYPE}}
- name: run-vcpkg
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: ${{env.VCPKGGITCOMMITID}}
vcpkgDirectory: ${{env.SOURCE_DIR}}/vcpkg
- name: RabbitCommon
working-directory: ${{env.SOURCE_DIR}}
run: git clone https://github.com/KangLin/RabbitCommon.git
- name: Build RabbitRemoteControl with cmake preset
if: false #${{ matrix.BUILD_TYPE == 'Release' && matrix.qt_version == '6.9.3' && startsWith(github.ref, 'refs/heads/master')}}
working-directory: ${{github.workspace}}
env:
RabbitCommon_ROOT: ${{env.SOURCE_DIR}}/RabbitCommon
run: |
cmake --workflow --preset "msvc-x64-qt6"
- name: Build RabbitRemoteControl
working-directory: ${{env.BUILD_DIR}}
shell: bash
env:
RabbitCommon_ROOT: ${{env.SOURCE_DIR}}/RabbitCommon
run: |
cmake ${{github.workspace}} \
-A ${{matrix.CMAKE_GENERATOR_PLATFORM}} \
-T ${{matrix.VCPKG_PLATFORM_TOOLSET}} \
-DCMARK_SHARED=OFF \
-DCMARK_TESTS=OFF \
-DCMARK_STATIC=ON \
-DWITH_CMARK=OFF \
-DWITH_CMARK_GFM=ON \
-DWITH_WebEngineWidgets=ON \
-DRABBIT_ENABLE_INSTALL_DEPENDENT=ON \
-DRABBIT_ENABLE_INSTALL_QT=ON \
-DRABBIT_ENABLE_INSTALL_TO_BUILD_PATH=ON \
-DCMAKE_BUILD_TYPE=${{matrix.BUILD_TYPE}} \
-DCMAKE_INSTALL_PREFIX=${{env.BUILD_DIR}}/install \
-DCMAKE_PREFIX_PATH=${{env.INSTALL_DIR}} \
-DCMAKE_TOOLCHAIN_FILE=${{env.VCPKG_ROOT}}/scripts/buildsystems/vcpkg.cmake \
-DVCPKG_VERBOSE=ON \
-DVCPKG_TARGET_TRIPLET=${{matrix.VCPKG_TARGET_TRIPLET}} \
-DX_VCPKG_APPLOCAL_DEPS_INSTALL=ON \
-DVCPKG_APPLOCAL_DEPS=ON \
-DVCPKG_TRACE_FIND_PACKAGE=ON \
-DBUILD_QUIWidget=OFF \
-DBUILD_APP=ON \
-DBUILD_FREERDP=ON \
-DPCAP_ROOT=${{env.INSTALL_DIR}}/npcap \
-DPacket_ROOT=${{env.INSTALL_DIR}}/npcap \
-DINSTALL_QTKEYCHAIN=ON
cmake --build . --config ${{matrix.BUILD_TYPE}}