当前位置:   article > 正文

在UOS系统中编译CEF源码_cef python 编译

cef python 编译

 一、下载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主线代码

  1. git pull --depth 1
  2. git pull --depth 100
  3. git pull --depth 1000
  4. git pull --depth 30000
  5. git pull
  6. git checkout main
  7. git pull

第三步:更新tags

3.1 获取所有tag号信息,将所有的tag号保存在tags.log文件中

git ls-remote --tags origin > tags.log

 3.2 根据每一个tag号单独下载代码

接下来就是漫长的等待过程

  1. #!/bin/bash
  2. lists=`grep 'refs/tags/' tags.log | awk -F' ' '{print $2}'`
  3. for tag in $lists
  4. do
  5. git fetch origin $tag
  6. 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也不会有很大的影响。

  1. def DefaultDeltaBaseCacheLimit():
  2. """Return a reasonable default for the git config core.deltaBaseCacheLimit.
  3. The primary constraint is the address space of virtual memory. The cache
  4. size limit is per-thread, and 32-bit systems can hit OOM errors if this
  5. parameter is set too high.
  6. """
  7. if platform.architecture()[0].startswith('64'):
  8. return '2g'
  9. 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

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号