windows平台编译CEF

环境要求

  • Intel芯片
  • windows10 英文版
  • 梯子

本次构建机器配置

CPU:Intel E31275 3.4G

内存:16G

硬盘:500G固态硬盘

本次安装软件版本

depot_tools commit:963e01c76c
CEF Branch:5563
CEF commit:ebf5d6ab43c61ebd6ece0c504e15fe73b8da59d6
Chromium Version:111.0.5563.148

Visual Studio 2019
Windows 10 SDK 10.0.20348.0

版本限制

使用vs2019编译Chromium支持的最后一版本是111,后面版本需要vs2022

Chromium支持win7的最后一版本是109

操作系统

中文操作系统需要修改英文模式

(1)打开Windows 设置,选择时间和语言

(2)选择区域选项,将国家或地区设置成美国

(3)选择语言选项,点击添加语言,选择英语(美国),下一步勾选设置为我的Windows显示语言

(4)完成语言包的切换后会要求注销账户,根据提示注销

(5)重新登录账户

(6)回到刚才的语言选项,点击管理语言设置

(7)点击更改系统区域设置,选择英语(美国),勾选 Bate 版:使用 Unicode UTF-8 提供全球语言支持 选项

(8)点击确定,按照提示重启系统,重启完成后会将语言设置成英文        

或者添加系统参数

set PYTHONLEGACYWINDOWSSTDIO=utf8
set PYTHONIOENCODING=utf8
set PYTHONUTF8=1

 网络代理工具和代理配置

set http_proxy=http://127.0.0.1:10809
set https_proxy=http://127.0.0.1:10809

git config --global http.proxy %http_proxy%
git config --global https.proxy %https_proxy%

set BOTO_CONFIG=C:\code\boto.cfg
set NO_AUTH_BOTO_CONFIG=C:\code\boto.cfg

boto.cfg

[Boto]
proxy=127.0.0.1
proxy_port=10809
proxy_type=http

取消代理

set http_proxy=
set https_proxy=

git config --global unset http.proxy
git config --global unset https.proxy

官网地址

官网构建chromium方法

windows_build_instructions

官网构建cef方法

MasterBuildQuickStart

官方构建cef成品下载地址

CEF Automated Builds

官方jcef git地址

GitHub - jcefmaven/jcefbuild: Builds for JCef

1.安装Visual Studio和安装windows sdk

Visual Studio版本和SDK版本可查看:BranchesAndBuilding

Visual Studio历史版本下载地址

windows平台编译CEF_第1张图片

运行以下命令进行安装,安装Visual Studio时候可以不装windows sdk,后面手动下载安装

$PATH_TO_INSTALLER.EXE ^
--add Microsoft.VisualStudio.Workload.NativeDesktop ^
--add Microsoft.VisualStudio.Component.VC.ATLMFC ^
--add Microsoft.VisualStudio.Component.VC.Tools.ARM64 ^
--add Microsoft.VisualStudio.Component.VC.MFC.ARM64 ^
--includeRecommended

安装windows sdk

Windows SDK下载地址按需下载

安装时候必须勾选Debugging Tools for windows

2.创建工作目录

md C:\code\automate
md C:\code\chromium_git
md C:\code\depot_tools

3.depot_tools

下载 depot_tools.zip,解压到depot_tools文件夹

运行"update_depot_tools.bat" 安装python和git

cd c:\code\depot_tools
update_depot_tools.bat

4.automate-git.py

下载 automate-git.py 放到 automate文件夹

5.设置系统环境变量

1.Path 新增一个路径c:\code\depot_tools

2.创建一个系统变量DEPOT_TOOLS_WIN_TOOLCHAIN 值0

6.拉取代码

C:\code\chromium_git创建update.bat,内容如下

set download_dir=c:\code\chromium_git
set depot-tools-dir=c:\code\depot_tools
set cef_branch=5563

set GN_DEFINES=use_jumbo_build=true ffmpeg_branding=Chrome proprietary_codecs=true
set GN_ARGUMENTS=--ide=vs2019 --sln=cef --filters=//cef/*

python ..\automate\automate-git.py --download-dir=%download_dir% --depot-tools-dir=%depot-tools-dir% --branch=%cef_branch%  --no-distrib --no-build

设置好代理后 执行脚本,会自动拉取cef和chromium的源码
总共20G左右

一次运行不成功就运行多次,知道不报错为止

7.自动构建与打包

C:\code创建autobuild.bat,内容如下

set download_dir=c:\code\chromium_git
set depot-tools-dir=c:\code\depot_tools
set cef_branch=5414

set GN_DEFINES=proprietary_codecs=true ffmpeg_branding=Chrome is_official_build=true is_debug=false symbol_level=0 enable_nacl=false


set GYP_MSVS_VERSION=2019
set CEF_ARCHIVE_FORMAT=tar.bz2

python automate/automate-git.py --download-dir=%download_dir% --depot-tools-dir=%depot-tools-dir% --branch=%cef_branch% --minimal-distrib --client-distrib --force-clean --x64-build --with-pgo-profiles --no-debug-build --no-depot-tools-update --no-chromium-update --force-config

自动构建并打包,打包到C:\code\chromium_git\chromium\src\cef\binary_distrib目录下

参数名称 参数含义

 --minimal-distrib

最小打包

--client-distrib

客户端打包

--force-clean

强制清理src中的out和cef,并重新下载cef

--x64-build

64位构建,不加此参数为32位构建

--with-pgo-profiles

pgo插件?

--no-debug-build

不构建debug

--no-depot-tools-update

不更新depot-tools

--no-chromium-update

不更新chromium
--force-config 强制更新.gclient配置

8. 手动构建

8.1. 为源码创建解决方案

拉取代码后
切换到目录 C:\code\chromium_git\chromium\src\cef
创建create.bat 内容如下

set GN_DEFINES=use_jumbo_build=true ffmpeg_branding=Chrome proprietary_codecs=true is_component_build=false

set GN_ARGUMENTS=--ide=vs2019 --sln=cef --filters=//cef/*

call cef_create_projects.bat

发布时记得设置is_component_build = false

运行create.bat后,out成功生成

8.2. 执行编译

切换到C:\code\chromium_git\chromium\src 编译chromium内核

ninja -C out\Release_GN_x64 cef

9. 其他

1)同步chromium代码时候要使用官方提供方式下载,不要直接使用git同步,不然会出现构建时间异常的问题。

造成C:\code\chromium_git\chromium\src\build\util

LASTCHANGE.committime文件中,值为0

LASTCHANGE文件中,LASTCHANGE_YEAR=0

出现如下报错

比如报这样的错

git log -1 --format=%H %ct

比如报这样的错

python3.exe ../../build/write_build_date_header.py gen/base/generated_build_date.h -2142000

正常这两个文件应该是

LASTCHANGE

LASTCHANGE=168eebf2055fd26ca8c71787b7b3f9fe7c90d13d-refs/branch-heads/5414@{#1459}
LASTCHANGE_YEAR=2023

LASTCHANGE.committime

1674498815

你可能感兴趣的:(chrome,windows)