windows 新版skia编译 版本号m37_2062(2018.1.1)
现在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)相关推荐
- 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 ...
- Qt最新版5.13在Windows环境静态编译安装和部署的完整过程(VS 2017/VS 2019)
文章目录 为什么要静态编译 1.源码下载 2. 编译工具下载 ActivePerl Python Ruby 编译环境选择 3.编译 1.修改源码里的qtbase\mkspecs\common\msvc ...
- Qt最新版5.12在Windows环境静态编译安装和部署的完整过程(VS2017)
文章目录 为什么要静态编译 1.源码下载 2. 编译工具下载 ActivePerl Python Ruby 编译环境选择 3.编译 1.修改源码里的qtbase\mkspecs\common\msvc ...
- Windows版skia库的编译及下载(VS2019)
工作需要使用skia库,但是这个库的源代码不好访问,编译工具也是要科学访问才行,windows上自己编译一份很麻烦,可是网上找不到编译好的库...... 不对,至少能找到一份,但是居然它的debug版 ...
- Windows环境VS2017编译skia库-m84,亲测成功,使用官方编译的方法
环境准备 Windows7/10电脑需要能访问https://skia.org/和https://skia.googlesource.com/skia.git 在Windows上安装Visual St ...
- chromium 03 修改chromium 编译版本号
chromium 版本号定义在 src\chrome\VERSION 中.单纯的修改这里的版本号,一般是不能顺利编译通过的.比如68.0.3440.105要修改为主版本号大于 10的,比如:10.0. ...
- Caffe Windows版本的编译
2019独角兽企业重金招聘Python工程师标准>>> 1:Caffe的主版本只支持Linux,所以要下载专门的Caffe Windows版本,网址为 https://github. ...
- 最新版OpenWrt编译教程,解决依赖问题
最新版OpenWrt编译教程,解决依赖问题 参考文章: (1)最新版OpenWrt编译教程,解决依赖问题 (2)https://www.cnblogs.com/jzssuanfa/p/7400840. ...
- 【错误记录】Windows 控制台程序编译报错 ( WINDOWS.H already included. MFC apps must not #include <Windows.h> )
文章目录 一.报错信息 二.解决方案 一.报错信息 Windows 控制台程序编译报错 : 已启动生成- 1>------ 已启动生成: 项目: hacktool, 配置: Debug Win3 ...
最新文章
- dom定位的三种元素
- ipmitool 中文 帮助 文档
- 10个重要的Linux ps命令实战
- Python基础教程:自定义迭代器
- 第十六期:Vue 3.0 前瞻,体验 Vue Function API
- vim中如何设置多行注释和删除注释
- 国际免费版 新冠疫情数据分析APP正式发布!
- php date 有warning,php提示PHP Warning: date(): It is not safe to rely on the......错误的解决办法...
- atitit.userService 用户系统设计 v4 q316 .doc
- 1.4万人的盛会——2010 VMWorld记行之一
- 寄存器之通用寄存器(一)
- [数字图像处理·冈萨雷斯 ] 图像文件格式
- Android有效解决加载大图片时内存溢出的问题
- 漫画制作软件EasyComic V1.7发布
- Linux 必知必会
- 基于微信小程序的同城家政服务小程序
- [JZOJ4058]【JSOI2015】子集选取
- 会话机制(session)
- php用户登录论坛系统,discuz论坛 用户登录 后台程序代码
- Java实现 word.excel等文档在线预览
热门文章
- 阿里P7大佬 兼职干这个,每天2小时,月入3万多!
- 自学Android!阿里P7Android社招面试的经历,面试总结
- java面试思维导图
- Pane和Panel有区别吗?(一篇辨析两者区别的好文)
- Android WebAPP开发入门
- 生意好会员管家v14.1.9
- 李洪强经典面试题18
- Yum安装支持InfiniBand的lustre——Install Lustre with InfiniBand Support By Yum
- 【SDIO】SD2.0协议分析总结(二)-- SD卡识别数据传输过程
- create_function()函数利用