window環境編譯Skia(VS2017)

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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容