操作系统:win7 64
编译器:vs20150、准备好VPN
准备好VPN,这是第一步。
skia使用git管理源码。所以,要先安装git。
但是不能直接使用git获得skia源码。因为编译skia需要一些依赖库。要使用google提供的depot_tools来
获得源码。depot_tools使用python包装了git。根本上还是使用git获得源码。
可直接下载depot_tools工具。
2、下载源码
安装好depot_tools工具后。进入命令行,新建一个目录,切换到此目录下。
以后下载的源码就会下载到这个目录下。
执行如下命令
gclient config --name=src https://skia.googlesource.com/skia.git
执行此命令后会创建.gclient文件。文件内容为:
solutions = [
{ "name" : "src",
"url" : "https://skia.googlesource.com/skia.git",
"deps_file" : "DEPS",
"managed" : True,
"custom_deps" : {
},
"safesync_url": "",
},
]
cache_dir = None
再执行如下命令:
gclient sync
此命令用来获取源码。慢慢等吧。
3、下载某一版本
获取源码完成后,会发现此源码的版本为master。使用如下git命令会看到此skia的版本
$ git branch
* (HEAD detached at origin/master)
master
如果我们为了使用skia,而不是开发skia,最好不要使用master版本。要获得skia已经定型的版本。
查看skia的版本
$ git branch -r
origin/HEAD -> origin/master
origin/chrome/m39
origin/chrome/m40
origin/chrome/m41
origin/chrome/m42
origin/chrome/m43
origin/chrome/m44
origin/chrome/m45
origin/chrome/m46
origin/chrome/m47
origin/chrome/m48
origin/chrome/m49
origin/chrome/m50
origin/chrome/m51
origin/chrome/m52
origin/chrome/m53
origin/chrome/m54
origin/chrome/m55
origin/infra/config
origin/master
下载某一个版本,这里以m55为例
git checkout -b chrome_55 origin/chrome/m55
稍等一会,就会获取完此版本。
4、生成VS2015工程
skia中使用了一些C++11的特性。VS2013不能很好的支持C++11。所以要使用VS2015。
在命令行中执行如下三条命令
SET "GYP_MSVS_VERSION=2015"
SET "GYP_GENERATORS=msvs"
python gyp_skia
会生成vs2015的工程。
5、编译Skia
在执行python gyp_skia的过程中,我们会发现程序输出了如下内容:
gyp: Missing input files:
E:\svn\skiasrc\src\out\gyp\..\..\third_party\externals\giflib\gifalloc.c
E:\svn\skiasrc\src\out\gyp\..\..\third_party\externals\giflib\gif_err.c
E:\svn\skiasrc\src\out\gyp\..\..\third_party\externals\giflib\dgif_lib.c
解决方法
下载giflib。将对应文件放到在对应的位置中。稍稍修改代码即可。
之后,就可编译skia了。