Skia是Google一個底層的圖形、文本、圖像、動畫等多方面的2D圖形庫。官方網站https://skia.org/
Skia編譯真是特立獨行,環境搭建使用Python2,配置使用Gn,編譯使用Ninja。以下需要科學上網。
1.安裝python環境2.x版本
https://www.python.org/downloads/release/python-2715/
2.skia使用ninja構建工具構建
下載編譯工具,配置環境變量(將depot_tools目錄加入到Path中)。
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
3.下載skia.
此處需要指定一下版本,skia版本太多了,個人建議用m68
git clone https://github.com/google/skia -b chrome/m68
4.下載第三方庫
進入源碼目錄后使用python腳本更新工具
python tools/git-sync-deps
5.編譯
可選參數請參考文件skia/BUILD.gn
gn gen out/Shared --args="is_debug=false"
ninja -C out/Shared
gn gen out/Static --args="is_debug=false is_official_build=true skia_use_system_libpng=false skia_use_system_zlib=false skia_use_expat = false skia_use_libjpeg_turbo=false skia_use_libwebp=false extra_cflags=["/MD"]
*Shared/Static 看起來是個名字,其實是個參數,指定了是動態還是靜態庫
*is_debug。這個選項值可以為true或者false。當為true時編譯debug版本,false時編譯release版本。
*is_component_build。這個選項值可以為true或者false。當為true時編譯動態庫(MD),false時編譯靜態庫(MT)。
如果需要編譯MD的靜態庫,加入extra_cflags=["/MD"] 即可
*is_official_build。這個選項值可以為true或者false。當為true時編譯第三方庫,false時不編譯第三方庫
*skia_use_foo 的作用,是第三方庫的編譯開關,skia_use_foo 會覆蓋skia_use_system_foo