1.准备工作
(1)在windows上安装VisualStudio,建议VisualStudio版本不低于2015。
(2)安装python2.7版本,并把python添加环境变量,python3不兼容,会导致很多错误。
(3)安装Git工具。
(4)翻墙工具。
我配置的环境是 python2.7.15+vs2017+windows10
2.下载源码
(1)下载depot_tools
git clone 'https://chromium.googlesource.com/chromium/tools/depot_tools.git'
由于Chromium项目的代码量巨大,又依赖了很多第三方代码库,所以如何有效的管理这些代码是个难题。Chromium官方提供了一个depot_tools来管理Chromium源代码的工具,官方开发工作流也是基于depot_tools。
下载完成后把depot_tools添加环境变量。
(2)下载skia源码(不要忘记开启翻墙)
git clone https://skia.googlesource.com/skia.git
*如果翻墙了还是下载不了,要修改Git的端口号
git config --global http.proxy "localhost:1080"
cd skia
python tools/git-sync-deps(此处等待时间较长,我等待了大约3个小时)
完成后添加skia中gn目录到环境变量。
(3)下载ninja
git clone git://github.com/ninja-build/ninja.git && cd ninja
打开VS2017兼容工具命令提示符
执行python configure.py --bootstrap
结束之后会出现ninja.exe,并添加环境变量
3.构建配置
打开skia/gn/ BUILDCONFIG.gn,大约在31行左右,将 win_vc = " " 的值设置为你的VisualStudio的安装目录下的VC目录.
比如我的目录是
win_vc = "C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC"
执行相应的命令来构建你的目标配置
## 在skia目录下执行
## 构建静态库
> gn gen out/Static
## 构建动态库
## 因为Windows平台的编译器在导出动态库的时候会检查方法定义的通用性 ## 所以编译过程中会报出 C4251 和 C4275 的警告, 只是警告而已, 所以我们在此处加上 extra_cflags=[\"/wd4251\",\"/wd4275\"] 参数来忽略此警告
> gn gen out/Shared --args="is_component_build=true extra_cflags=[\"/wd4251\",\"/wd4275\"]"
## 构建Debug版本
> gn gen out/Debug
## 构建Release版本
> gn gen out/Release --args="is_debug=false"
## 当然还可以直接构建VisualStudio的.sln文件, 使用VisualStudio直接导入
> gn gen out/sln --ide=vs
通过以上构建步骤,会在skia目录下产生一个out目录,里边的目录对应你的构建配置项
4.编译生成vs工程。
此处有两种办法
(1)直接用vs打开out/sln目录下的all.sln让vs自己导入。
(2)
ninja -C out/Static
ninja -C out/Shared
ninja -C out/Debug
ninja -C out/Release