在vcpkg中添加patch的方法

在vcpkg中添加patch的方法

参考:https://learn.microsoft.com/en-us/vcpkg/examples/patching

1. 以editable模式安装要patch的库

1
vcpkg install libpng:x64-uwp --editable

2. 在buildtrees目录中找到要patch的库,并用git记录当前状态

1
2
3
4
cd ~/vcpkg/buildtrees/libpng/src/v1.6.37-c993153cdf
git init .
git add .
git commit -m "temp"

3. 修改源码

4. 生成patch

1
git diff --ignore-space-at-eol | out-file -enc ascii ../../../../ports/libpng/use-abort-on-all-platforms.patch
1
2
3
4
5
6
7
8
9
10
11
# ports/libpng/portfile.cmake
...
vcpkg_extract_source_archive_ex(
OUT_SOURCE_PATH SOURCE_PATH
ARCHIVE ${ARCHIVE}
PATCHES
"use-abort-on-all-platforms.patch"
)

vcpkg_cmake_configure(
...

5. 重新安装并验证

1
vcpkg remove libpng:x64-uwp
1
vcpkg install libpng:x64-uwp

6. 更新vcpkg.json中的port-version

1
2
3
4
5
6
7
8
9
// ports/libpng/vcpkg.json
{
"name": "libpng",
"version": "1.6.37",
"port-version": 1,
"dependencies": [
"zlib"
]
}

在vcpkg中添加patch的方法
https://blog.fredbill.eu.org/programming/vcpkg-add-patch/
作者
FredBill
发布于
2023年11月11日
许可协议