一、下载cef代码
git clone git@bitbucket.org:chromiumembedded/cef.git
二、执行自动下载代码
由于chromium的代码很大,至少需要准备大概80G的硬盘!!!整个代码量太大还是多准备一些空间吧(强烈建议使用固态硬盘保存否则编译时会很慢),因此我们可能需要多次下载chromium代码分批下载下来。
cd cef/tools/automate
我的python版本为:Python 3.8.18,应该python3版本都可以。
python3 automate-git.py --download-dir=/media/arv000/3a8d3186-5909-4fb7-9a5d-a450b5d66d09/work/cef2/chromium --depot-tools-dir=/media/arv000/3a8d3186-5909-4fb7-9a5d-a450b5d66d09/work/cef2/depot_tools --no-distrib --x64-build --branch=5938
--download-dir:chromium的代码地址
--depot-tools-dir:depot-tools编译工具下载地址
--x64-build:编译成amdx86_64
--branch=5938 :选择cef的分支为5938,建议使用固定分支,不推荐使用master因为chromium的版本会固定下来。
如果失败了不要悲伤,这里有可能是因为网络或者超时等原因造成的。
将chromium/chromium/_gclient_src_XXX目录修改为chromium/chromium/src目录,然后继续执行以下命令确保分批次下载好chromium的源码
分批次下载如下命令:
第一步:先将最新的一次提交clone下载(如果没有git才执行该代码,有了直接跳过这个步骤!!!)
第二步:分步pull主线代码
git pull --depth 1
git pull --depth 100
git pull --depth 1000
git pull --depth 30000
git pull
git checkout main
git pull
第三步:更新tags
3.1 获取所有tag号信息,将所有的tag号保存在tags.log文件中
git ls-remote --tags origin > tags.log
3.2 根据每一个tag号单独下载代码
接下来就是漫长的等待过程
#!/bin/bash
lists=`grep 'refs/tags/' tags.log | awk -F' ' '{print $2}'`
for tag in $lists
do
git fetch origin $tag
done
3.3 整体同步下载代码
git fetch --tags
第四步:继续执行命令
python3 automate-git.py --download-dir=/media/arv000/3a8d3186-5909-4fb7-9a5d-a450b5d66d09/work/cef2/chromium --depot-tools-dir=/media/arv000/3a8d3186-5909-4fb7-9a5d-a450b5d66d09/work/cef2/depot_tools --no-distrib --x64-build --branch=5938
在执行过程中需要修改depot_tools脚本中的缓存大小。
vim depot_tools/gclient_utils.py中的缓存大小。默认2G修改为4G。由于git在使用过程中会使用大量的内存导致系统性能。所以这里做了限制,可以根据计算机的内存设备进行设置。我的系统是16G的因此设置为4G也不会有很大的影响。
def DefaultDeltaBaseCacheLimit():
"""Return a reasonable default for the git config core.deltaBaseCacheLimit.
The primary constraint is the address space of virtual memory. The cache
size limit is per-thread, and 32-bit systems can hit OOM errors if this
parameter is set too high.
"""
if platform.architecture()[0].startswith('64'):
return '2g'
return '512m'
仅仅编译不下载代码命令如下:
python3 automate-git.py --download-dir=/media/arv000/3a8d3186-5909-4fb7-9a5d-a450b5d66d09/work/cef2/chromium --depot-tools-dir=/media/arv000/3a8d3186-5909-4fb7-9a5d-a450b5d66d09/work/cef2/depot_tools --no-distrib --x64-build --branch=5938 --no-chromium-update --no-depot-tools-update --no-cef-update