Skip to content

Commit 4e4d1b0

Browse files
committed
CI: add vcpkg.json
1 parent 03a47c8 commit 4e4d1b0

2 files changed

Lines changed: 155 additions & 1 deletion

File tree

.github/workflows/vcpkg.yml

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