【chromium】 cef源码下载
至少需要17GB的磁盘空间,不光有CEF源码,还会下载chromium源码。编译master分支的话,如果编译到chromium可能会需要windows sdk,windows sdk的版本可以参考下面提到的链接BranchesAndBuilding
,windows sdk的下载可以用Visual Studio Installer或者去微软官网搜索下载。
步骤参考自MaterBuildQuickStart和BranchesAndBuilding,推荐使用第二种,第一种有不确定因素(主要是网络问题),所以成为敢于爬高探头的红杏(抽象万岁)是必要的。
需要用到自动脚本automate-git.py,这个脚本自动下载源码+编译,十分方便,但是还是事先准备好一些东西才是有备无患
PS:使用pyhton automate-git.py --help
可以查看这个脚本的命令行参数,十分有帮助
depot_tools
可以在chromium的编译文档中找到,也可以使用automate-git.py下载,但是automate-git.py有可能会因为网络原因下载失败,如果下载失败(爆出IOERROR socket error类似的错误)时,需要手动完成以下步骤
下载depot tools,这个是个压缩包,解压到喜欢的位置,然后配置系统的环境变量,将depot_tools的路径配置到系统PATH中去,并将优先级往前移。
打开cmd执行gclient
,这个操作会让depot_tools变身成为完全版(下载相应工具例如python等)。
然后回到automate-git.py
,执行的时候需要告诉automate-git.py
depot_tools已经准备好了,用--depot-tools-dir=depot_tools_path
来告诉它depot_tools的路径。这样automate-git.py
就会跳过下载解压depot_tools的环节,直接进入下一步骤(但是需要depot_tools是执行过gclient命令的,因为需要一些工具)。
下载源码
因为我之前编译过chromium,所以本地是有depot_tools,因此跳过下载depot_tools的环节,使用该命令下载源码并编译cefpython ./automate-git.py --depot-tools-dir=F:\depot_tools --download-dir=../ --no-release-build
,其中--no-release-build是因为默认automate-git.py会编译一份debug版,一份release版,可以但可能没必要,看自己的选择,编译两个版本会占用大量的空间和时间(因为chromium太大了),这条命令使用后会进行长时间的下载,耐心等待即可(自动真爽)。拉取代码需要花费的时间大概是6个小时(跟机器性能和下载速度有关)。
PS:注意!不管是切到远程分支还是在本地仓库的多个分支checkout都应该使用automate-git.py
和其参数(例如--branch或--checkout
)进行操作,不然可能会失败。
生成工程文件和编译
下载好源码之后,在chromium\src\cef\
目录下创建create.bat文件,文件内容如下,设置了增快编译速度和生成vs用的解决方案的的gn参数
set GN_DEFINES=use_jumbo_build=true is_component_build=true
set GN_ARGUMENTS=--ide=vs2017 --sln=cef --filters=//cef/*
call cef_create_projects.bat
执行后,会生成项目文件cef.sln
,然后可以用VS打开,编译。(但是不推荐使用VS编译,卡,慢)
cef_create_projects.bat
其实是使用gn生成了.ninja文件,可以使用ninja编译
进入chromium的src目录下执行
ninja -C out\Debug_GN_x86 cef
进行编译,可以得到库文件和编译好的测试程序。