环境准备
- visualstudio
- python (3.6.9+)
- llvm (我下载的是LLVM-18.1.5-win64.exe)
编译前准备
以下命令需要确保网络通畅(科学上网)
git设置代理
git config --global https.proxy http://127.0.0.1:10809 git config --global http.proxy http://127.0.0.1:10809 git config --global http.sslVerify false
克隆代码
git clone https://skia.googlesource.com/skia.git
cd skia
初始化依赖库
python tools/git-sync-deps
下载 ninja
python bin/fetch-ninja
修改gn\BUILDCONFIG.gn(129行左右)
if (target_os == "win") {
# By default we look for 2017 (Enterprise, Pro, and Community), then 2015. If MSVC is installed in a
# non-default location, you can set win_vc to inform us where it is.
if (win_vc == "") {
# 找到你的vs安装目录对着填
win_vc = "D:/Dev/VisualStudio/2022/Community/VC"
}
assert(win_vc != "") # Could not find VC installation. Set win_vc to your VC
# directory.
}
if (target_os == "win") {
if (win_toolchain_version == "") {
# win_vc下Tools\MSVC内的文件夹名称,vs工具链版本
win_toolchain_version = "14.39.33519"
}
if (win_sdk_version == "") {
# win sdk安装目录下10/include下的文件名,sdk版本
win_sdk_version = "10.0.22621.0"
}
if (clang_win != "" && clang_win_version == "") {
# llvm安装路径下lib/clang下的文件名,clang版本
clang_win_version = "18"
}
}
如果下面编译有问题修改gn\toolchain\BUILD.gn 45行
dlsymutil_pool_depth=20 # 你的cpu核心数
编译
下面的clang_win换成自己的LLVM安装目录
Debug x64静态库
bin/gn gen out/debug_x64_static --args='clang_win=\"D:\SDK\LLVM\" cc=\"clang\" cxx=\"clang++\" extra_cflags=[\"/MTd\"] is_official_build=true is_debug=false skia_use_system_expat=false skia_use_system_libjpeg_turbo=false skia_use_system_libpng=false skia_use_system_libwebp=false skia_use_system_zlib=false skia_use_system_harfbuzz=false skia_use_icu=false'
ninja -C out/debug_x64_static
Release x64静态库
bin/gn gen out/release_x64_static --args='clang_win=\"D:\SDK\LLVM\" cc=\"clang\" cxx=\"clang++\" extra_cflags=[\"/MT\"] is_debug=false is_official_build=true skia_use_system_expat=false skia_use_system_libjpeg_turbo=false skia_use_system_libpng=false skia_use_system_libwebp=false skia_use_system_zlib=false skia_use_system_harfbuzz=false skia_use_icu=false skia_use_angle=true'
ninja -C out/release_x64_static
linux与mac下流程大体一致
ubuntu需要设置skia\_use\_system\_harfbuzz=false,skia_enable_fontmgr_empty=true
bin/gn gen out/debug_x64_static --args='skia\_use\_system\_harfbuzz=false skia_enable_fontmgr_empty=true'
如果是mac则使用下面的命名生成(is_trivial_abi设置false)
bin/gn gen out/debug_x64_static --args='is_debug=true is_trivial_abi=false'
评论 (0)