Skip to content

Commit 63765e0

Browse files
committed
CI: add vcpkg.json
1 parent 03a47c8 commit 63765e0

2 files changed

Lines changed: 154 additions & 1 deletion

File tree

.github/workflows/vcpkg.yml

Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
# Author: Kang Lin<kl222@126.com>
2+
3+
name: vcpkg
4+
5+
on:
6+
push:
7+
pull_request:
8+
9+
jobs:
10+
vcpkg:
11+
strategy:
12+
matrix:
13+
include:
14+
- CMAKE_GENERATOR_PLATFORM: x64
15+
VCPKG_TARGET_TRIPLET: x64-windows
16+
VCPKG_PLATFORM_TOOLSET: v143
17+
os: windows-2022
18+
19+
env:
20+
VCPKGGITCOMMITID: 6bc1613f18f850c60d906575296f982c6dfcc9e0
21+
VCPKG_TARGET_TRIPLET: ${{matrix.VCPKG_TARGET_TRIPLET}}
22+
VCPKG_DEFAULT_TRIPLET: ${{matrix.VCPKG_TARGET_TRIPLET}}
23+
VCPKG_PLATFORM_TOOLSET: ${{matrix.VCPKG_PLATFORM_TOOLSET}}
24+
VCPKG_INSTALLED_DIR: ${{github.workspace}}\.cache\install
25+
VCPKG_DEFAULT_BUILDTREES_ROOT: D:/bt
26+
VCPKG_DEFAULT_BINARY_CACHE: D:/bc
27+
RabbitRemoteControl_VERSION: v0.0.36
28+
BUILD_DIR: ${{github.workspace}}\build
29+
SOURCE_DIR: ${{github.workspace}}\.cache\source
30+
TOOLS_DIR: ${{github.workspace}}\.cache\tools
31+
INSTALL_DIR: ${{github.workspace}}\.cache\install
32+
VCPKG_MANIFEST_FEATURES: "qt;freerdp;vnc;terminal;filetransfer"
33+
34+
runs-on: ${{matrix.os}}
35+
steps:
36+
- name: Checkout Repository
37+
uses: actions/checkout@v4
38+
with:
39+
submodules: true
40+
fetch-depth: 0
41+
42+
# 1. 通过注册表启用长路径支持
43+
- name: Enable Long Paths
44+
if: false
45+
run: |
46+
# 检查当前设置
47+
$current = (Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem' -Name 'LongPathsEnabled').LongPathsEnabled
48+
echo "Current LongPathsEnabled: $current"
49+
50+
# 如果未启用,则启用
51+
#if ($current -ne 1) {
52+
# Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem' -Name 'LongPathsEnabled' -Value 1
53+
# Restart-Computer -Force # 需要重启,但在 CI 中不推荐
54+
#}
55+
56+
- name: Make directories
57+
run: |
58+
cmake -E make_directory ${{env.BUILD_DIR}}
59+
cmake -E make_directory ${{env.SOURCE_DIR}}
60+
cmake -E make_directory ${{env.TOOLS_DIR}}
61+
cmake -E make_directory ${{env.INSTALL_DIR}}
62+
63+
- name: run-vcpkg
64+
uses: lukka/run-vcpkg@v11
65+
with:
66+
vcpkgGitCommitId: ${{env.VCPKGGITCOMMITID}}
67+
vcpkgDirectory: C:/vcpkg
68+
69+
- name: RabbitCommon
70+
working-directory: ${{env.SOURCE_DIR}}
71+
run: git clone https://github.com/KangLin/RabbitCommon.git
72+
73+
- name: Build RabbitRemoteControl
74+
working-directory: ${{env.BUILD_DIR}}
75+
env:
76+
RabbitCommon_ROOT: ${{env.SOURCE_DIR}}/RabbitCommon
77+
run: |
78+
# 或者使用替代方法:应用组策略(不需要重启)
79+
# 但对于一次性运行环境,下面用环境变量方式更合适
80+
# 2. 设置环境变量
81+
#[Environment]::SetEnvironmentVariable("EnableLongPathBehavior", "1", "Process")
82+
#[Environment]::SetEnvironmentVariable("COMPLUS_ForceENC", "1", "Process")
83+
84+
# 启用 git 的长路径支持
85+
git config --global core.longpaths true
86+
# Windows 上的 git 还需要设置
87+
git config --global core.protectNTFS false
88+
89+
cmake ${{github.workspace}} `
90+
-A ${{matrix.CMAKE_GENERATOR_PLATFORM}} `
91+
-T ${{matrix.VCPKG_PLATFORM_TOOLSET}} `
92+
-DCMARK_SHARED=OFF `
93+
-DCMARK_TESTS=OFF `
94+
-DCMARK_STATIC=ON `
95+
-DWITH_CMARK=OFF `
96+
-DWITH_CMARK_GFM=ON `
97+
-DWITH_WebEngineWidgets=ON `
98+
-DRABBIT_ENABLE_INSTALL_DEPENDENT=ON `
99+
-DRABBIT_ENABLE_INSTALL_QT=ON `
100+
-DRABBIT_ENABLE_INSTALL_TO_BUILD_PATH=ON `
101+
-DCMAKE_BUILD_TYPE=Release `
102+
-DCMAKE_INSTALL_PREFIX=${{env.BUILD_DIR}}/install `
103+
-DCMAKE_PREFIX_PATH=${{env.INSTALL_DIR}} `
104+
-DCMAKE_TOOLCHAIN_FILE=${{env.VCPKG_ROOT}}/scripts/buildsystems/vcpkg.cmake `
105+
-DVCPKG_MANIFEST_FEATURES=${{env.VCPKG_MANIFEST_FEATURES}} `
106+
-DVCPKG_VERBOSE=ON `
107+
-DVCPKG_TARGET_TRIPLET=${{matrix.VCPKG_TARGET_TRIPLET}} `
108+
-DX_VCPKG_APPLOCAL_DEPS_INSTALL=ON `
109+
-DVCPKG_APPLOCAL_DEPS=ON `
110+
-DVCPKG_TRACE_FIND_PACKAGE=ON `
111+
-DVCPKG_MAX_PARALLELISM=2 `
112+
-DBUILD_QUIWidget=OFF `
113+
-DBUILD_APP=ON `
114+
-DBUILD_FREERDP=ON `
115+
-DPCAP_ROOT=${{env.INSTALL_DIR}}/npcap `
116+
-DPacket_ROOT=${{env.INSTALL_DIR}}/npcap `
117+
-DINSTALL_QTKEYCHAIN=ON
118+
cmake --build . --config Release

vcpkg.json

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,49 @@
88
"openssl",
99
"cmark"
1010
],
11-
11+
1212
"default-features": [
1313
"freerdp",
1414
"vnc",
1515
"filetransfer"
1616
],
1717

1818
"features": {
19+
"qt": {
20+
"description": "qt library",
21+
"dependencies": [
22+
"qttools",
23+
"qtbase",
24+
{
25+
"name": "qt5compat",
26+
"default-features": false,
27+
"features": ["big-codecs","codecs","textcodec"]
28+
},
29+
{
30+
"name": "qtmultimedia",
31+
"default-features": false,
32+
"features": ["ffmpeg", "widgets"]
33+
},
34+
{
35+
"name": "qtscxml",
36+
"default-features": false
37+
},
38+
"qtserialport",
39+
{
40+
"name": "qtwebchannel",
41+
"default-features": false
42+
},
43+
"qtwebengine",
44+
{
45+
"name": "qtwebsockets",
46+
"default-features": false
47+
},
48+
"qttranslations",
49+
"qtsvg",
50+
"qtimageformats"
51+
]
52+
},
53+
1954
"ffmpeg": {
2055
"description": "ffmpeg",
2156
"dependencies": [

0 commit comments

Comments
 (0)