skia編譯ios版本

2023.5更新
先看一遍官方文檔: skia.org/docs/user/build

1.下載skia代碼

(參考https://skia.org/docs/user/download/)
a.git clone https://github.com/google/skia.git
b.執(zhí)行python tools/git-sync-deps,這一步會(huì)根據(jù)BUILD.gn里面的工程下載三方依賴(lài)庫(kù),要下載好一會(huì)。請(qǐng)弄好自己的網(wǎng)絡(luò)環(huán)境,配好git代理
c.bin/fetch-ninja

2.編譯

下載完成后,里代碼面的site/docs/user/build.md有詳細(xì)的編譯步驟
,直接看到ios這一節(jié)
a. 配置編譯參數(shù)
bin/gn gen --ide=xcode out/ios64 --args='target_os="ios" skia_ios_identity=".*Xu.*" skia_ios_profile="skia" is_debug=true skia_enable_gpu=true'

生成的需要指定identity和profile文件,
identity(skia_ios_identity)通過(guò)執(zhí)行security find-identity找到對(duì)應(yīng)能用的開(kāi)發(fā)者的編號(hào),我這上面用的正則匹配
profile(skia_ios_profile)通過(guò)developer官網(wǎng),下載對(duì)應(yīng)的mobileprovision文件。這里要注意要對(duì)應(yīng)包名,工程默認(rèn)包名是com.google.*,需要改成自己profile對(duì)應(yīng)的包名,請(qǐng)修改gn/ios.gni里面的bundle_prefix

b. 編譯skia官方demo
ninja -C out/ios64

這步驟編譯會(huì)有很多.h找不到,我是一個(gè)個(gè)從external里面復(fù)制一份放到編譯出錯(cuò)的目錄下了,本來(lái)想通過(guò)配置extra_cflags配置頭文件搜索路徑但是不生效不知道什么情況,不過(guò)花了點(diǎn)時(shí)間都還是能找到的。最新重編沒(méi)有遇到這個(gè)問(wèn)題了。
然后鏈接的時(shí)候會(huì)報(bào)找不到符號(hào)或者鏈接的庫(kù)。用brew安裝缺失的庫(kù),還有的裝下xcode command line tools也會(huì)有。這樣就能搞全了

c.安裝調(diào)試官方demo
命令行安裝:
os-deploy -b out/ios64/nanobench.app -d --args "--match foo"
Xcode安裝:
由于上面編譯選項(xiàng)中有--ide=xcode,在out目錄下會(huì)生成工程文件。
工程文件編譯的時(shí)候會(huì)報(bào)缺少info.plist,在Build Settings中找到Generate Info.plist File,把No改為Yes即可。

編譯三方demo

編譯完成后,我參考的這個(gè)工程,替換掉out/ios64里我們新編譯出來(lái)的libskia.a和libpathkit.a,還有把include里的頭文件都替換就行了。
https://github.com/yehot/skia-ios-demo/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容