Windows里下載和編譯skia挤茄,主要還是參考skia官方文檔:
how to download: https://skia.org/user/download
how to buid: https://skia.org/user/build
當(dāng)然,由于網(wǎng)絡(luò)的原因杆勇,上面2個網(wǎng)址也都是需要間接訪問的扰藕。
下載:
2個git repo:
1)一個源碼,下載完了還要執(zhí)行python2下載external庫;
2)一個depot_tools稻励,下載完了需要加入環(huán)境變量。
(ninja不需要單獨(dú)下載愈涩,ninja.exe已經(jīng)包含在depot_tools里了望抽。)
軟件方面,
1)要安裝python2
履婉,而不是python3
2)skia反復(fù)強(qiáng)調(diào)了用clang編譯煤篙,那么要安裝clang編譯器,在C:\Program Files\LLVM
參考
然后參考了 http://www.reibang.com/p/4225f4342d18 (以下簡稱“引文”)
但有幾個不一樣的地方:
1)skia/bin
不需要加入環(huán)境變量
使用的時候毁腿,在skia根目錄下辑奈,把bin目錄名帶著,以bin/gn
的形式運(yùn)行已烤。這樣與官方文檔更一致鸠窗。
2)參數(shù)也不一樣,見下文
參數(shù)
2)引文里沒有說明胯究,很多庫在Windows下應(yīng)該用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(我電腦上默認(rèn)的是vs2019)硅则,編譯出來的skia.lib=63M淹父;使用clang, skia.lib=36M