现在skia只能使用vs2015和vs2017编译了,请事先安装好vs2015或者vs2017,安装好git。

1.先现在依赖工具(首先的配置好vpn):

git clone 'https://chromium.googlesource.com/chromium/tools/depot_tools.git'

然后设置window环境变量path中添加depot_tools的路径,例如:D:\depot_tools。

2.使用git下载源码:

git clone https://skia.googlesource.com/skia.git
cd skia
python tools/git-sync-deps

3.编译源码:

打开cmd,切换到skia目录。

gn gen out/x862015  --ide="vs" --args="is_debug=true target_cpu=\"x86\" win_vc=\"ddddd\"" --sln="deskiax86"

将会生成vs工程,由于我的vc目录含有空格,故win_vc=“vc路径””,是无效的,用vs打开sln工程,此时依然无法编译。

4.修改toolchain.ninja文件。

源文件中的

rule cccommand = cmd /c C:/Program Files (x86)/Windows Kits/10/bin/SetEnv.cmd /x86 &&   "ddddd/bin/amd64/cl.exe" /nologo /showIncludes /FC @${out}.rsp /c ${in} /Fo${out} /Fd"${target_out_dir}/${label_name}_c.pdb"description = compile ${in}rspfile = ${out}.rsprspfile_content = ${defines} ${include_dirs} ${cflags} ${cflags_c}deps = msvc
rule cxxcommand = cmd /c C:/Program Files (x86)/Windows Kits/10/bin/SetEnv.cmd /x86 &&   "ddddd/bin/amd64/cl.exe" /nologo /showIncludes /FC @${out}.rsp /c ${in} /Fo${out} /Fd"${target_out_dir}/${label_name}_c.pdb"description = compile ${in}rspfile = ${out}.rsprspfile_content = ${defines} ${include_dirs} ${cflags} ${cflags_cc}deps = msvc
rule asmcommand = cmd /c C:/Program Files (x86)/Windows Kits/10/bin/SetEnv.cmd /x86 &&  ddddd/bin/amd64/ml.exe /nologo /c /Fo ${out} ${in}description = assemble ${in}
rule alinkcommand = cmd /c C:/Program Files (x86)/Windows Kits/10/bin/SetEnv.cmd /x86 &&  ddddd/bin/amd64/lib.exe /nologo /ignore:4221 ${arflags} /OUT:${out} @${out}.rspdescription = link ${out}rspfile = ${out}.rsprspfile_content = ${in_newline}
rule solinkcommand = cmd /c C:/Program Files (x86)/Windows Kits/10/bin/SetEnv.cmd /x86 &&  ddddd/bin/amd64/link.exe /nologo /IMPLIB:${output_dir}/${target_output_name}${output_extension}.lib /DLL /OUT:${output_dir}/${target_output_name}${output_extension} /PDB:${output_dir}/${target_output_name}${output_extension}.pdb @${output_dir}/${target_output_name}${output_extension}.rspdescription = link ${out}rspfile = ${output_dir}/${target_output_name}${output_extension}.rsprspfile_content = ${in_newline} ${libs} ${solibs} ${ldflags}restat = 1
rule linkcommand = cmd /c C:/Program Files (x86)/Windows Kits/10/bin/SetEnv.cmd /x86 &&  ddddd/bin/amd64/link.exe /nologo /OUT:${root_out_dir}/${target_output_name}${output_extension} /PDB:${root_out_dir}/${target_output_name}${output_extension}.pdb @${root_out_dir}/${target_output_name}${output_extension}.rspdescription = link ${out}rspfile = ${root_out_dir}/${target_output_name}${output_extension}.rsprspfile_content = ${in_newline} ${libs} ${solibs} ${ldflags}
rule stampcommand = cmd.exe /c echo > ${out}description = stamp ${out}
rule copycommand = python.bat D:/work/Projects/skia/skia/gn/cp.py ${in} ${out}description = copy ${in} ${out}

替换成

rule cccommand = ninja -t msvc -e environment.x86 -- "d:\program files (x86)\microsoft visual studio 14.0\vc\bin\amd64_x86/cl.exe" /nologo /showIncludes  @${out}.rsp /c ${in} /Fo${out} /Fd"${target_out_dir}/${label_name}_c.pdb"description = CC ${out}rspfile = ${out}.rsprspfile_content = ${defines} ${include_dirs} ${cflags} ${cflags_c}deps = msvc
rule cxxcommand = ninja -t msvc -e environment.x86 -- "d:\program files (x86)\microsoft visual studio 14.0\vc\bin\amd64_x86/cl.exe" /nologo /showIncludes  @${out}.rsp /c ${in} /Fo${out} /Fd"${target_out_dir}/${label_name}_cc.pdb"description = CXX ${out}rspfile = ${out}.rsprspfile_content = ${defines} ${include_dirs} ${cflags} ${cflags_cc}deps = msvc
rule rccommand = D:/depot_tools/win_tools-2_7_6_bin/python/bin/python.exe ../../build/toolchain/win/tool_wrapper.py rc-wrapper environment.x86 rc.exe ${defines} ${include_dirs} /fo${out} ${in}description = RC ${out}
rule asmcommand = D:/depot_tools/win_tools-2_7_6_bin/python/bin/python.exe ../../build/toolchain/win/tool_wrapper.py asm-wrapper environment.x86 ml.exe ${defines} ${include_dirs} ${asmflags} /c /Fo${out} ${in}description = ASM ${out}
rule alinkcommand = D:/depot_tools/win_tools-2_7_6_bin/python/bin/python.exe ../../build/toolchain/win/tool_wrapper.py link-wrapper environment.x86 False lib.exe /nologo ${arflags} /OUT:${out} @${out}.rspdescription = LIB ${out}rspfile = ${out}.rsprspfile_content = ${in_newline}
rule solinkcommand = D:/depot_tools/win_tools-2_7_6_bin/python/bin/python.exe ../../build/toolchain/win/tool_wrapper.py link-wrapper environment.x86 False link.exe /nologo /IMPLIB:${output_dir}/${target_output_name}${output_extension}.lib /DLL /OUT:${output_dir}/${target_output_name}${output_extension} /PDB:${output_dir}/${target_output_name}${output_extension}.pdb @${output_dir}/${target_output_name}${output_extension}.rspdescription = LINK(DLL) ${out}rspfile = ${output_dir}/${target_output_name}${output_extension}.rsprspfile_content = ${libs} ${solibs} ${in_newline} ${ldflags}pool = build_toolchain_link_poolrestat = 1
rule solink_modulecommand = D:/depot_tools/win_tools-2_7_6_bin/python/bin/python.exe ../../build/toolchain/win/tool_wrapper.py link-wrapper environment.x86 False link.exe /nologo /DLL /OUT:${output_dir}/${target_output_name}${output_extension} /PDB:${output_dir}/${target_output_name}${output_extension}.pdb @${output_dir}/${target_output_name}${output_extension}.rspdescription = LINK_MODULE(DLL) ${out}rspfile = ${output_dir}/${target_output_name}${output_extension}.rsprspfile_content = ${libs} ${solibs} ${in_newline} ${ldflags}pool = build_toolchain_link_pool
rule linkcommand = D:/depot_tools/win_tools-2_7_6_bin/python/bin/python.exe ../../build/toolchain/win/tool_wrapper.py link-wrapper environment.x86 False link.exe /nologo /OUT:${output_dir}/${target_output_name}${output_extension} /PDB:${output_dir}/${target_output_name}${output_extension}.pdb @${output_dir}/${target_output_name}${output_extension}.rspdescription = LINK ${out}rspfile = ${output_dir}/${target_output_name}${output_extension}.rsprspfile_content = ${in_newline} ${libs} ${solibs} ${ldflags}pool = build_toolchain_link_poolrule stampcommand = D:/depot_tools/win_tools-2_7_6_bin/python/bin/python.exe ../../build/toolchain/win/tool_wrapper.py stamp ${out}description = STAMP ${out}
rule copycommand = D:/depot_tools/win_tools-2_7_6_bin/python/bin/python.exe ../../build/toolchain/win/tool_wrapper.py recursive-mirror ${in} ${out}description = COPY ${in} ${out}

然后需要把environment.x86放在sln工程目录下。将build文件拷贝到skia目录中去即可

windows 新版skia编译 版本号m37_2062(2018.1.1)相关推荐

  1. Qt最新版5.14在Windows环境静态编译安装和部署的完整过程 VS 2019-Qt static link build Windows 32 bit/64 bit

    文章目录 为什么要静态编译(static link) 1.源码下载/source code download 2. 编译工具下载/compiler download 编译环境选择:MinGW/MSVC ...

  2. Qt最新版5.13在Windows环境静态编译安装和部署的完整过程(VS 2017/VS 2019)

    文章目录 为什么要静态编译 1.源码下载 2. 编译工具下载 ActivePerl Python Ruby 编译环境选择 3.编译 1.修改源码里的qtbase\mkspecs\common\msvc ...

  3. Qt最新版5.12在Windows环境静态编译安装和部署的完整过程(VS2017)

    文章目录 为什么要静态编译 1.源码下载 2. 编译工具下载 ActivePerl Python Ruby 编译环境选择 3.编译 1.修改源码里的qtbase\mkspecs\common\msvc ...

  4. Windows版skia库的编译及下载(VS2019)

    工作需要使用skia库,但是这个库的源代码不好访问,编译工具也是要科学访问才行,windows上自己编译一份很麻烦,可是网上找不到编译好的库...... 不对,至少能找到一份,但是居然它的debug版 ...

  5. Windows环境VS2017编译skia库-m84,亲测成功,使用官方编译的方法

    环境准备 Windows7/10电脑需要能访问https://skia.org/和https://skia.googlesource.com/skia.git 在Windows上安装Visual St ...

  6. chromium 03 修改chromium 编译版本号

    chromium 版本号定义在 src\chrome\VERSION 中.单纯的修改这里的版本号,一般是不能顺利编译通过的.比如68.0.3440.105要修改为主版本号大于 10的,比如:10.0. ...

  7. Caffe Windows版本的编译

    2019独角兽企业重金招聘Python工程师标准>>> 1:Caffe的主版本只支持Linux,所以要下载专门的Caffe Windows版本,网址为 https://github. ...

  8. 最新版OpenWrt编译教程,解决依赖问题

    最新版OpenWrt编译教程,解决依赖问题 参考文章: (1)最新版OpenWrt编译教程,解决依赖问题 (2)https://www.cnblogs.com/jzssuanfa/p/7400840. ...

  9. 【错误记录】Windows 控制台程序编译报错 ( WINDOWS.H already included. MFC apps must not #include <Windows.h> )

    文章目录 一.报错信息 二.解决方案 一.报错信息 Windows 控制台程序编译报错 : 已启动生成- 1>------ 已启动生成: 项目: hacktool, 配置: Debug Win3 ...

最新文章

  1. dom定位的三种元素
  2. ipmitool 中文 帮助 文档
  3. 10个重要的Linux ps命令实战
  4. Python基础教程:自定义迭代器
  5. 第十六期:Vue 3.0 前瞻,体验 Vue Function API
  6. vim中如何设置多行注释和删除注释
  7. 国际免费版 新冠疫情数据分析APP正式发布!
  8. php date 有warning,php提示PHP Warning: date(): It is not safe to rely on the......错误的解决办法...
  9. atitit.userService 用户系统设计 v4 q316 .doc
  10. 1.4万人的盛会——2010 VMWorld记行之一
  11. 寄存器之通用寄存器(一)
  12. [数字图像处理·冈萨雷斯 ] 图像文件格式
  13. Android有效解决加载大图片时内存溢出的问题
  14. 漫画制作软件EasyComic V1.7发布
  15. Linux 必知必会
  16. 基于微信小程序的同城家政服务小程序
  17. [JZOJ4058]【JSOI2015】子集选取
  18. 会话机制(session)
  19. php用户登录论坛系统,discuz论坛 用户登录 后台程序代码
  20. Java实现 word.excel等文档在线预览

热门文章

  1. 阿里P7大佬 兼职干这个,每天2小时,月入3万多!
  2. 自学Android!阿里P7Android社招面试的经历,面试总结
  3. java面试思维导图
  4. Pane和Panel有区别吗?(一篇辨析两者区别的好文)
  5. Android WebAPP开发入门
  6. 生意好会员管家v14.1.9
  7. 李洪强经典面试题18
  8. Yum安装支持InfiniBand的lustre——Install Lustre with InfiniBand Support By Yum
  9. 【SDIO】SD2.0协议分析总结(二)-- SD卡识别数据传输过程
  10. create_function()函数利用