skia-编译

windows build

环境需求

  1. python 2.x
  2. git
  3. vs2019

源代码

先下载相关代码

git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
git clone https://skia.googlesource.com/skia.git
进入 skia 的源码目录
cd skia
python tools/git-sync-deps
  1. 工具添加到环境变量中

set PATH=%PATH%;E:\project\cpp\skia_project\depot_tools
set PATH=%PATH%;E:\project\cpp\skia_project\skia\bin\

查看 ninja 是否存在。命令行输入 ninja 查看是否成功

下面是失败的信息

"ninja" 不是内部或外部命令,也不是可运行的程序或批处理文件。

命令行输入 gn 查看是否成功

"gn" 不是内部或外部命令,也不是可运行的程序或批处理文件。 则是配置失败

配置 VC 目录

打开 skia/gn/BUILDCONFIG.gn 文件

win_vc = “” 的值设置为 Visual Studio 的安装目录下的VC目录
配置 SDK 目录 win_sdk = "D:/Windows Kits/10"

只有 VC 可以编译 32 位的
This toolchain is the only way we support 32-bit builds, by also setting target_cpu="x86"

官方强烈推荐使用 clang-cl 构建,高度优化

clang_win = "C:\Program Files\LLVM"

Run GN to generate your build files.

## 直接构建VisualStudio的.sln文件
gn gen out/sln --ide=vs

静态 debug
gn gen out/Clang --args="cxx=\"clang++\" cc=\"clang\" is_debug=true"

静态 release
gn gen out/Clang_release --args="cxx=\"clang++\" cc=\"clang\" is_debug=false"



bin/gn gen out/Shared --args='is_official_build=true is_component_build=true'
--ide=vs
bin\gn gen out/Static_x86 --args="clang_win=\"C:\Program Files\LLVM\" target_cpu=\"x86\" is_debug=false is_official_build=true skia_use_system_expat=false skia_use_system_libjpeg_turbo=false skia_use_system_libpng=false skia_use_system_libwebp=false skia_use_system_zlib=false"


bin/gn gen out/Debug
bin/gn gen out/Release --args='is_debug=false'
bin/gn gen out/Clang --args='cc="clang" cxx="clang++"'
bin/gn gen out/Cached --args='cc_wrapper="ccache"'
bin/gn gen out/RTTI --args='extra_cflags_cc=["-frtti"]'

is_official_build=true 优化编译
is_official_build=false debug 编译

编译

ninja -C out/Static
ninja -C out/Shared
ninja -C out/Debug
ninja -C out/Release
ninja -C out/Clang
ninja -C out/Clang_release
ninja -C out/Cached
ninja -C out/RTTI

有更新时,重新 build

git pull
python tools/git-sync-deps
ninja -C out/Static