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
,這一步會根據(jù)BUILD.gn里面的工程下載三方依賴庫拗踢,要下載好一會痊远。請弄好自己的網(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)通過執(zhí)行security find-identity
找到對應(yīng)能用的開發(fā)者的編號宋税,我這上面用的正則匹配
profile(skia_ios_profile)通過developer官網(wǎng)摊崭,下載對應(yīng)的mobileprovision文件。這里要注意要對應(yīng)包名杰赛,工程默認(rèn)包名是com.google.*
呢簸,需要改成自己profile對應(yīng)的包名,請修改gn/ios.gni
里面的bundle_prefix
b. 編譯skia官方demo
ninja -C out/ios64
這步驟編譯會有很多.h找不到乏屯,我是一個(gè)個(gè)從external里面復(fù)制一份放到編譯出錯(cuò)的目錄下了根时,本來想通過配置extra_cflags配置頭文件搜索路徑但是不生效不知道什么情況,不過花了點(diǎn)時(shí)間都還是能找到的辰晕。最新重編沒有遇到這個(gè)問題了蛤迎。
然后鏈接的時(shí)候會報(bào)找不到符號或者鏈接的庫。用brew安裝缺失的庫含友,還有的裝下xcode command line tools也會有替裆。這樣就能搞全了
c.安裝調(diào)試官方demo
命令行安裝:
os-deploy -b out/ios64/nanobench.app -d --args "--match foo"
Xcode安裝:
由于上面編譯選項(xiàng)中有--ide=xcode
,在out目錄下會生成工程文件窘问。
工程文件編譯的時(shí)候會報(bào)缺少info.plist辆童,在Build Settings中找到Generate Info.plist File,把No改為Yes即可惠赫。
編譯三方demo
編譯完成后把鉴,我參考的這個(gè)工程,替換掉out/ios64里我們新編譯出來的libskia.a和libpathkit.a汉形,還有把include里的頭文件都替換就行了纸镊。
https://github.com/yehot/skia-ios-demo/