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 cc
  command = 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}.rsp
  rspfile_content = ${defines} ${include_dirs} ${cflags} ${cflags_c}
  deps = msvc
rule cxx
  command = 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}.rsp
  rspfile_content = ${defines} ${include_dirs} ${cflags} ${cflags_cc}
  deps = msvc
rule asm
  command = 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 alink
  command = 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}.rsp
  description = link ${out}
  rspfile = ${out}.rsp
  rspfile_content = ${in_newline}
rule solink
  command = 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}.rsp
  description = link ${out}
  rspfile = ${output_dir}/${target_output_name}${output_extension}.rsp
  rspfile_content = ${in_newline} ${libs} ${solibs} ${ldflags}
  restat = 1
rule link
  command = 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}.rsp
  description = link ${out}
  rspfile = ${root_out_dir}/${target_output_name}${output_extension}.rsp
  rspfile_content = ${in_newline} ${libs} ${solibs} ${ldflags}
rule stamp
  command = cmd.exe /c echo > ${out}
  description = stamp ${out}
rule copy
  command = python.bat D:/work/Projects/skia/skia/gn/cp.py ${in} ${out}
  description = copy ${in} ${out}
替换成

rule cc
  command = 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}.rsp
  rspfile_content = ${defines} ${include_dirs} ${cflags} ${cflags_c}
  deps = msvc
rule cxx
  command = 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}.rsp
  rspfile_content = ${defines} ${include_dirs} ${cflags} ${cflags_cc}
  deps = msvc
rule rc
  command = 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 asm
  command = 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 alink
  command = 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}.rsp
  description = LIB ${out}
  rspfile = ${out}.rsp
  rspfile_content = ${in_newline}
rule solink
  command = 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}.rsp
  description = LINK(DLL) ${out}
  rspfile = ${output_dir}/${target_output_name}${output_extension}.rsp
  rspfile_content = ${libs} ${solibs} ${in_newline} ${ldflags}
  pool = build_toolchain_link_pool
  restat = 1
rule solink_module
  command = 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}.rsp
  description = LINK_MODULE(DLL) ${out}
  rspfile = ${output_dir}/${target_output_name}${output_extension}.rsp
  rspfile_content = ${libs} ${solibs} ${in_newline} ${ldflags}
  pool = build_toolchain_link_pool
rule link
  command = 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}.rsp
  description = LINK ${out}
  rspfile = ${output_dir}/${target_output_name}${output_extension}.rsp
  rspfile_content = ${in_newline} ${libs} ${solibs} ${ldflags}
  pool = build_toolchain_link_pool

rule stamp
  command = 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 copy
  command = 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目录中去即可


  

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值