最近需要升级cef版本,所以需要自己编译对应的cef版本并支持mp4等多媒体功能,中间上网查了资料也踩了一些坑,所以记录下来备份下,最终编译了78(3904)和66(3359)两个版本。
如果不需要自己编译版本,只是要获取对应的版本使用,不需要支持mp4等多媒体功能,可以直接在官网获取版本
http://opensource.spotify.com/cefbuilds/index.html#windows32_builds
构建准备
- 安装 Visual Studio 2017
- 8G内存+60G SSD硬盘空间
- 安装对应版本的windows sdk,78要求Win 10.0.18362 SDK,66要求Win10.0.15063.468 SDK
- 翻墙网络可以下载Chromium代码
下载代码
首先在对应的下载目录创建对应的文件夹,例如放到g:\code目录下
下载automate-git.py放到automate目录下
https://bitbucket.org/chromiumembedded/cef/raw/master/tools/automate/automate-git.py
下载官方的depot_tools工具,记得不要直接把文件拖拉出来,要用压缩工具右键菜单解压,否则有个隐藏的".git"文件夹可能会漏掉,右键解压到g:\code\ depot_tools。解压完成后,将 depot_tools 所在目录添加到系统的环境变量 %PATH% 中
https://storage.googleapis.com/chrome-infra/depot_tools.zip
接下来,运行 depot_tools\update_depot_tools.bat,完成后在 chromium_git 目录下创建一个名为 update.bat 的批处理文件去下载对应的代码
set GN_DEFINES=ffmpeg_branding=Chrome proprietary_codecs=true is_official_build=true
set GN_ARGUMENTS=--ide=vs2017 --sln=cef --filters=//cef/*
python ..\automate\automate-git.py --download-dir=c:\code\chromium_git --depot-tools-dir=g:\code\depot_tools --branch=3904 --no-distrib --no-build --force-clean
批处理中的各个参数及具体意思参看如下内容:
1)GN_DEFINES 参数介绍:
- ffmpeg_branding 和 proprietary_codecs 表示开启多媒体编解码支持,但默认仅支持一小部分,后面介绍如何支持更多。
- is_official_build 决定了是否是编译正式版本,指定该参数为 true 基本上都是为了产品发布使用,同时也会在创建解决方案的时候生成带有 sandbox 的解决方案(如 Release_GN_x86_sandbox),而不指定这个参数是没有的。如果你不是为了贡献代码,那默认这个都加上吧。
- use_jumbo_build 官方资料默认指定,表示是否启用试验性的 jumbo 编