Skia Windows 编译
编译环境:win10 64位、VS2017、git、LLVM
一、下载Skia相关源码
1、 下载google工具depot_tools
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
设置环境变量:
set path=当前目录/depot_tools;%path%
2、下载Skia源码
git clone https://skia.googlesource.com/skia.git
系统必须安装了python2,才能进行下一步
cd skia
python tools/git-sync-deps
二、编译
配置编译编译选项
配置编译为静态库
bin\gn gen out/Static --args="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/Shared --args="is_debug=false is_official_build=true is_component_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"
Debug/Release 配置选项生成(可选)
注意:debug和Release版本配置完成后还要手动将out\Debug\obj和out\Release\obj目录下以.ninja结尾的文件中”cflags=“ 那一行中的 “/WX” 改为"/WX-" 才能够编译成功
配置编译为Debug使用(开发环境使用)
bin\gn gen out/Debug --args="is_debug=true is_official_build=false 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"
配置编译为Release使用(开发环境使用)
bin\gn gen out/Release --args="is_debug=false 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 args out/Debug --list
3、编译
ninja -C out/Static //编译静态库
ninja -C out/Shared //编译动态库
ninja -C out/Debug //编译Debug使用
ninja -C out/Release //编译Release使用
三、产物
include 头文件目录
out/Static 静态库目录
out/Shared 动态库目录
out/Debug Debug使用
out/Release Release使用
编译32位
静态库配置
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"
静态库编译
ninja -C out/Static_x86
动态库配置
bin\gn gen out/Shared_x86 --args="clang_win=\"C:\Program Files\LLVM\" target_cpu=\"x86\" is_debug=false is_official_build=true is_component_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"
动态库编译
ninja -C out/Shared_x86
其中clang_win=“C:\Program Files\LLVM” 指定了编译使用llvm ,windows下编译google推荐的方式。
编译32位问题
'C:/Program' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
LINK : fatal error LNK1171: 无法加载 mspdbcore.dll (错误代码: 126)
[893/966] compile ../../third_party/externals/libpng/pngwrite.c
ninja: build stopped: subcommand failed.
1、打开Static_x86下的toolchain.ninja文件,删除所有类似于“cmd /c C:/Program Files (x86)/Windows Kits/10/bin/SetEnv.cmd /x86 && ”的内容,保存。
2、然后将“C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.15.26726/bin/HostX64/x64”文件夹中的“mspdbcore.dll”、“mspdb140.dll”、“msobj140.dll”三个文件复制到“Static_x86”文件夹中。
结束
参考链接: