需要安装svn、git、python环境。 确保编译时调用的python是python2。 编译时会通过多种方式访问网络,需要多种方式设置代理。 1.IE全局代理 2.环境变量: HTTP_PROXY=http://127.0.0.1:1081 NO_AUTH_BOTO_CONFIG=C:\code\depot_tools\boto.cfg 3.命令netsh winhttp set proxy http://127.0.0.1:1081 (netsh winhttp reset重置) C:\code\depot_tools\boto.cfg内容如下
[Boto]
proxy=http://127.0.0.1
proxy_port=1081
4.有的git版本可能不会读取环境变量,需要配置git代理 git config http.proxy http://127.0.0.1:1081
1.创建文件夹
c:\code\automate c:\code\chromium_git
2.下载depot_tools
https://storage.googleapis.com/chrome-infra/depot_tools.zip 解压到 c:\code\depot_tools
3.运行update_depot_tools.bat
c:\code\depot_tools\update_depot_tools.bat
4.添加环境变量
c:\code\depot_tools 添加到PATH DEPOT_TOOLS_WIN_TOOLCHAIN=0 GYP_MSVS_VERSION=2019
5.下载automate-git.py
https://bitbucket.org/chromiumembedded/cef/raw/master/tools/automate/automate-git.py 下载到 c:\code\automate\automate-git.py
6.创建并运行update.bat
创建文件 c:\code\chromium_git\update.bat 内容如下:
set GN_DEFINES=use_jumbo_build=true is_component_build=true
set GN_ARGUMENTS=--ide=vs2019 --sln=cef --filters=//cef/*
python ..\automate\automate-git.py --download-dir=c:\code\chromium_git --depot-tools-dir=c:\code\depot_tools --no-distrib --no-build
运行update.bat Release时is_component_build=false
7.创建并运行 create.bat
创建文件 c:\code\chromium_git\chromium\src\cef\create.bat 内容如下:
set GN_DEFINES=use_jumbo_build=true is_component_build=true
set GN_ARGUMENTS=--ide=vs2019 --sln=cef --filters=//cef/*
call cef_create_projects.bat
运行create.bat Release时is_component_build=false
需要手动在Windows10 SDK中安装Debuggers Tools For Windows这一功能。 编译时可能会出现找不到LASTCHANGE.committime这一文件,在C:\code\chromium_git\chromium\src\build\util下执行python lastchange.py -o LASTCHANGE即可。
成功后会在 c:\code\chromium_git\chromium\src\out\ 下生成项目文件。
8.使用ninja进行编译
在 c:\code\chromium_git\chromium\src 目录下 gn args out\Debug_GN_x86 可用来配置编译参数 gclient runhooks 更新编译时需要的依赖 ninja -C out\Debug_GN_x86 cef 执行编译
以下配置参数可用来启用H264视频解码功能
ffmpeg_branding="Chrome"
proprietary_codecs=true
编译时需要安装这个python包,如果没安装可能会报错 python -m pip install pywin32
gn可以使用–script-executable指定你要使用的python路径,Chrome目前编译还必须使用python2
9.打包
在 c:\code\chromium_git\chromium\src\cef\tools 目录下 make_distrib --ninja-build 执行打包 带上--minimal 可只生成Release包
10.生成 libcef_dll_wrapper.lib
在前面打包的基础上,使用CMake打开,生成cef.sln 然后使用VS打开cef.sln编译即可
编译前确保depot-tools路径为环境变量第一个,从而使用其中的python,避免python版本问题
新版似乎已经不需要设置 use_jumbo_build=true is_component_build=true
is_component_build=true 需要保留,否则生成项目文件会报错
clang在编译时,寻找msvc的include路径可能存在问题,导致找到vs2022的相关路径,导致出现编译错误。可以通过设置环境变量解决:set VCToolsInstallDir=C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.29.30133
set GN_ARGUMENTS=–ide=vs2019 –sln=cef –filters=//cef/* 用于生成sln,如果不生成sln则不需要
Chromium91 新增BUG:https://crbug.com/1177001.
编译参数需要增加use_thin_lto=false