Windows里下载和编译skia,主要还是参考skia官方文档:
how to download: https://skia.org/user/download
how to buid: https://skia.org/user/build
当然,由于网络的原因,上面2个网址也都是需要间接访问的。
下载:
2个git repo:
1)一个源码,下载完了还要执行python2下载external库;
2)一个depot_tools,下载完了需要加入环境变量。
(ninja不需要单独下载,ninja.exe已经包含在depot_tools里了。)
软件方面,
1)要安装python2
,而不是python3
2)skia反复强调了用clang编译,那么要安装clang编译器,在C:\Program Files\LLVM
参考
然后参考了 //www.greatytc.com/p/4225f4342d18 (以下简称“引文”)
但有几个不一样的地方:
1)skia/bin
不需要加入环境变量
使用的时候,在skia根目录下,把bin目录名带着,以bin/gn
的形式运行。这样与官方文档更一致。
2)参数也不一样,见下文
参数
2)引文里没有说明,很多库在Windows下应该用skia自带的代码编译。
skia_use_system_libpng=false skia_use_system_libjpeg_turbo=false skia_use_system_zlib=false skia_use_system_harfbuzz=false skia_use_system_icu=false skia_use_system_libwebp=false skia_use_system_expat=false
见https://stackoverflow.com/a/57627556/10838321
最后,完整的gn命令如下:
bin\gn gen out/Static --args="is_debug=false is_official_build=true skia_use_system_libpng=false
skia_use_system_libjpeg_turbo=false skia_use_system_zlib=false skia_use_system_harfbuzz=false
skia_use_system_icu=false skia_use_system_libwebp=false skia_use_system_expat=false
clang_win=\"C:\Program Files\LLVM""
注意clang_win=\"C:
中的引号前面的\
,否则是无法识别“引号中的引号”的。
clang影响lib大小
最后:ninja -C out/Static
倒没有想象中编译那么久。
以上配置,不使用clang(我电脑上默认的是vs2019),编译出来的skia.lib=63M;使用clang, skia.lib=36M