首页 > cef > CEF-发布分支的下载,构建,打包(BranchesAndBuilding翻译)
2017十月9

CEF-发布分支的下载,构建,打包(BranchesAndBuilding翻译)

[隐藏]

https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding

本Wiki页面提供有关CEF分支的信息以及下载,构建和打包源代码的说明。

  

1.背景

CEF项目是http://www.chromium.org上的Chromium项目的扩展。 CEF保持当前开发和发布分支跟踪Chromium分支。 CEF源代码可以手动或使用自动化工具构建。

   

2.当前开发

CEF当前的主分支跟随chromium的主分支,不推荐用于产品,当前CEF主分支的构建要求如下,有关开发构建快速入门指南,请参阅MasterBuildQuickStart Wiki页面。

Win 7+, VS2015u3, Win10.0.14393 SDK, Ninja macOS 10.9-10.12, 10.9+ build system, 10.9+ deployment target, 10.10 base SDK, Xcode 8.3, Ninja, 64-bit only Ubuntu 14.04+, Debian Wheezy+, Ninja

可使用以下URL来下载CEF的开发版本:

CEF1不再开发或被支持。 详见CEF1退休计划。

  

3.Release (发布)分支

创建CEF分支用于跟踪每个Chromium的里程碑发行(MXX)分支,鼓励开发产品使用Release(发布)分支基于以下原因:

1.二进制CEF构建与特定的Chromium版本相关。

2.CEF / Chromium的发布分支经过了更好的测试,更适合发布应用程序。

3.在发布分支中,CEF API是“冻结”的,通常只做安全/错误修复。

4.如果有必要,CEF发布分支会包含Chromium / Blink源的补丁。

5.CEF主线开发不会干扰发布分支。

       

现代CEF版本号格式为X.YYYY.A.gHHHHHHH

其中:

1.“X”是CEF主要版本(目前为3)。

2.“YYYY”是Chromium分支。

3.“A”是表示当前分支中提交数量的递增数字。 这大致相当于SVN修订号,但是在每个分支的基础上,并帮助人们快速确定同一分支中的构建顺序(对于错误报告等)。

4.“gHHHHHHH”是Git提交hash的7个字符的缩写。 这有助于在Git中查找相关的提交历史记录。

  

详细的Chromium和CEF版本信息可在include/cef_version.h头文件中获得,这些头文件将在构建过程中创建,或者在基于CEF开发的应用程序中加载“about:version”URL显示,如下:

1.jpg

   

CEF发布分支和相关平台构建要求如下:

  

4.当前版本分支(支持)

当chromium beta channel时,开始支持新的分支,当chromium某channel稳定时,结束旧分支的支持,Spotify自动化构建器为当前Chromium稳定通道提供CEF构建,并将该分支升级到稳定通道时切换到下一个Chromium分支。更新CEF分支目前是一个手动过程,因此可能会在Chromium发布公布和相关CEF构建的可用性之间存在延迟。 有关Chromium发布日期和版本的信息,请参阅Chromium发行日历

  

5.旧的版本分支(不支持)

旧的CEF版本(直到2704分支)可从Spotify自动化构建器(旧版二进制下载地址)获得,旧的版本构建不被支持。 如果您选择构建旧版分支,则需要自行解决任何构建错误。通常可以使用与现有分支机构相同的工具来构建较新的旧的分支机构(在过去几个月内)。可以通过从此处下载所需分支的CEF源文件夹和从这里关联/所需版本的Chromium源文件夹构建旧的分支机构,然后将它们组合以创建所需的目录结构。

Branch Date Release Branch Chromium Version CEF1 CEF3 Windows Build Requirements
Jun 2017 3112 60 No Yes Win 7+, VS2015u3, Win10.0.14393 SDK, Ninja
Apr 2017 3071 59 No Yes Win 7+, VS2015u3, Win10.0.14393 SDK, Ninja
Mar 2017 3029 58 No Yes Win 7+, VS2015u3, Win10.0.14393 SDK, Ninja
Jan 2017 2987 57 No Yes Win 7+, VS2015u3, Win10.0.14393 SDK, Ninja
Nov 2016 2924 56 No Yes Win 7+, VS2015u3, Win10.0.10586 SDK, Ninja
Oct 2016 2883 55 No Yes Win 7+, VS2015u3, Win10.0.10586 SDK, Ninja
Aug 2016 2840 54 No Yes Win 7+, VS2015u2 or VS2015u3, Win10.0.10586 SDK, Ninja
Jul 2016 2785 53 No Yes Win 7+, VS2015u2 or VS2015u3, Win10.0.10586 SDK, Ninja
May 2016 2743 52 No Yes Win 7+, VS2015u2 or VS2015u3, Win10.0.10586 SDK, Ninja
Apr 2016 2704 51 No Yes Win 7+, VS2015u2, Win10.0.10586 SDK, Ninja
Jan 2016 2623 49 No Yes WinXP+, VS2013u4 or VS2015u1 (experimental), Win10 SDK, Ninja
Oct 2015 2526 47 No Yes WinXP+, VS2013u4 or VS2015u1 (experimental), Win8.1 SDK, Ninja
Jul 2015 2454 45 No Yes WinXP+, VS2013u4, Win8.1 SDK, Ninja
Apr 2015 2357 43 No Yes WinXP+, VS2013u4, Win8.1 SDK, Ninja
Jan 2015 2272 41 No Yes WinXP+, VS2013u4, Win8.1 SDK, Ninja
Oct 2014 2171 39 No Yes WinXP+, VS2013u4, Win8.1 SDK, Ninja
Aug 2014 2062 37 No Yes WinXP+, VS2013, Win8 SDK, Ninja
Apr 2014 1916 35 No Yes WinXP+, VS2013, Win8 SDK, Ninja
Jan 2014 1750 33 No Yes WinXP+, VS2010-2013, Win8 SDK, Ninja
Oct 2013 1650 31 No Yes WinXP+, VS2010-2012, Win8 SDK, Ninja (optional)
Jul 2013 1547 29 No Yes WinXP+, VS2010-2012, Win8 SDK, Ninja (optional)
Apr 2013 1453 27 Yes Yes WinXP+, VS2010, Win8 SDK, Ninja (optional)
Jan 2013 1364 25 Yes Yes WinXP+, VS2010, Win8 SDK, Ninja (optional)
Oct 2012 1271 23 Yes Yes WinXP+, VS2010, Win7 SDK
Aug 2012 1180 21 Yes Yes WinXP+, VS2010, Win7 SDK
Apr 2012 1084 19 Yes No WinXP+, VS2008, Win7 SDK
Feb 2012 1025 18 Yes No WinXP+, VS2008, Win7 SDK
Dec 2011 963 17 Yes No WinXP+, VS2008, Win7 SDK

应使用以下URL来下载CEF的发行版,其中YYYY是发行分行号。  

如:https://bitbucket.org/chromiumembedded/cef/src/2623?at=2623

请注意,1025和更旧的分支只包含CEF1源代码,1547和更新的分支仅包含CEF3源代码。

   

6.从源码中编译 

Windows,Mac MacOS和Linux平台目前支持源代码构建。建议使用以下Automated Method(自动化方法)。在MasterBuildQuickStart Wiki页面上描述了怎么构建当前的CEF/Chromium主分支。AutomatedBuildSetup Wiki页面描述了自动构建用于产品的CEF/Chromium稳定分支。对于其他分支机构,请参阅上文“发布分支”部分中列出的构建要求以及下面的“构建说明”部分。

      

7.Automated Method(自动化方法)

CEF提供了自动下载,构建和打包Chromium和CEF源代码的工具。这些工具是在本地构建CEF的推荐方式,也可以与AutomatedBuildSetup Wiki页面中所述的自动构建系统集成。有关本地开发构建的推荐流程示例,请参阅MasterBuildQuickStart Wiki页面。

这些步骤仅适用于Git工作流程。 推荐所有用户使用Git工作流程,并适用于CEF3主分支和较新的CEF3版本分支(1750+)。

1.下载automate-git.py脚本。 即使在构建发布分支时,也可以使用此脚本的最新版本。

2.在Linux上:Chromium要求安装某些软件包。 您可以通过运行install-build-deps.sh scriptexplicitly running(显式运行)必要的安装命令来安装它们。

3.以适当的时间间隔运行automate-git.py脚本(如每个CEF提交,每天一次,每周一次等)。

  

编译主分支:

python /path/to/automate/automate-git.py --download-dir=/path/to/download

编译发布分支:

python /path/to/automate/automate-git.py --download-dir=/path/to/download --branch=2623

默认情况下,脚本将下载depot_tools,Chromium和CEF源代码,运行CEF的Debug和Release版本构建,并在“/path/to/download/chromium/src/cef/binary_distrib”中创建一个包含构建后的二进制发行版,(eg:类似于http://opensource.spotify.com/cefbuilds/index.html),随后的脚本运行将执行必要的最低工作需求(除非使用命令行标志进行其他配置)。例如,如果没有待处理的CEF或Chromium更新,脚本将不执行任何操作。

   

如果你运行脚本并且CEF或Chromium更新正在等待,“/path/to/download/chromium/src/cef”目录将被移除,并被“/path/to/download/cef_(branch)”干净副本替换,(指定–no-update命令行标志来禁用更新),确保在重新运行脚本之前备份您在“/path/to/download/chromium/src/cef”目录中所做的任何更改。

  

相同的下载目录可用于构建多个CEF分支(仅指定不同的-branch命令行值)。现有的“/path/to/download/chromium/src/out”目录将被移动到“/path/to/download/out(previousbranch)”,以便前一个分支的构建输出不会丢失。当您切换回上一个分支时,out目录将恢复到其原始位置。

  

默认情况下,该脚本将在Windows上创建一个32位构建。 要在Windows、Mac MacOS或Linux上创建64位版本,将指定–x64-build命令行标志。 从3272分支开始,不再支持Mac MacOS上的32位构建,因此在该平台上构建2272+时,必需要该标志。

  

如果你从一个分支已存在的checkout转移到另一分支时接收到GIT错误,你可以强制执行一个干净的chromium检出(指定–force-clean命令行标志),并可选择清除chromium依赖关系(指定–force-clean-deps命令行标志)。

当前存在于“src/out”目录中的任何构建输出都将被删除。重新下载Chromium依赖关系可能需要大约30分钟,速度相当快。

  

添加–help命令行开关以输出支持的命令行选项的完整列表。

   

8.手动下载

Chromium和CEF可以手动下载和构建。这是更复杂的,所以大多数用户不建议使用,有关推荐的构建工作流程示例,请参阅MasterBuildQuickStart Wiki页面。

  

8.1.当前版本

  

这些说明仅适用于使用Git工作流程的CEF3主版本。有关在Chromium中使用Git工作流程的完整说明,请点击此处

1.按照这里所述安装depot_tools。 为了避免潜在的问题,请确保路径尽可能短,不包含空格或特殊字符。

2.创建一个chrome checkout目录(例如/path/to/chromium)。 为了避免潜在的问题,请确保路径尽可能短,不包含空格或特殊字符。

3.查看CEF顶级目录中的CHROMIUM_BUILD_COMPATIBILITY.txt文件,以确定您需要的Chromium Git提交hash。随着CEF版本更新,hash也会变化

4.使用depot_tools附带的提取工具下载Chromium源代码。 此步骤仅在Chromium代码首次检出时执行。

cd /path/to/chromium
fetch --nohooks chromium

5.更新Chromium checkout为所需的Git提交hash。不要直接使用'git checkout commit_hash',因为子项目依赖关系不会被更新。

cd /path/to/chromium
gclient sync --revision <commit_hash> --jobs 16

6.将CEF源代码从CEF Git仓库下载到Chromium“src”目录中的“cef”目录。如果将Chromium代码下载到“/path/to/chrome/src”,则CEF代码应该被下载到“/path/to/chromium/src/cef”。 请注意,该目录必须命名为“cef”。

cd /path/to/chromium/src
git clone https://bitbucket.org/chromiumembedded/cef.git

  

8.2.开发分支

这些说明仅适用于使用Git工作流程CEF3的开发分支。 Git工作流程支持较新的CEF3发行版分支(1750+)。 有关在Chromium中使用Git工作流程的完整说明,请点击此处

1.按照这里所述安装depot_tools。 为了避免潜在的问题,请确保路径尽可能短,不包含空格或特殊字符。

2.创建一个chrome checkout目录(例如/path/to/chromium)。 为了避免潜在的问题,请确保路径尽可能短,不包含空格或特殊字符。

3.查看CEF顶级目录中的CHROMIUM_BUILD_COMPATIBILITY.txt文件,以确定您需要的Chromium Git提交hash。随着CEF版本更新,hash也会变化

4.使用depot_tools附带的提取工具下载Chromium源代码。 此步骤仅在Chromium代码首次检出时执行。

cd /path/to/chromium
fetch --nohooks chromium

5.下载额外的分支和标签信息。

cd /path/to/chromium/src
gclient sync --nohooks --with_branch_heads
git fetch
git fetch --tags

6.检出开发版本并更新第三方依赖库

cd /path/to/chromium/src

# Check out the release version (“53.0.2785.89” in this example).
git checkout refs/tags/53.0.2785.89

# Update third-party dependencies.
gclient sync --jobs 16

7.将CEF源代码从CEF Git仓库下载到Chromium“src”目录中的“cef”目录。 如果将Chromium代码下载到“/path/to/chrome/src”,则CEF代码应该被下载到“/path/to/chromium/src/cef”。 请注意,该目录必须命名为“cef”。

cd /path/to/chromium/src
git clone https://bitbucket.org/chromiumembedded/cef.git
cd cef

# Create a local branch tracking the remote branch (“2785” in this example).
git checkout -t origin/2785

  

9.手工编译

有关推荐的开发工作流程的示例,请参阅MasterBuildQuickStart Wiki页面。

 

10.手工打包

在构建Debug和Release配置之后,您可以使用make_distrib工具(Windows上的.bat,macOS和Linux上的.sh)来创建二进制分发。

cd /path/to/chromium/src/cef/tools
./make_distrib.sh --ninja-build

如果操作成功,将在/path/to/chromium/src/cef/binary_distrib目录中创建一个二进制分发包。

有关其他使用选项,请参阅make_distrib.py脚本。然后可以使用CMake和平台工具链构建所得的二进制分发。 有关更多信息,请参阅二进制发行版附带的README.txt文件。

  

11.编译注意点

本节总结了与构建相关的要求和选项:

1.在大多数平台上编译至少需要8GB的系统内存。

2.构建较新的CEF/Chromium分支时必须使用ninja

3.GYP支持2785及之前的分支,GN支持2785及之后分支,从2840分支开始必须用GN,构建2785时可以设置CEF_USE_GN=1表示使用GN替换GYP.

4.CEF不支持组件构建(参见问题#1617)。

5.要在Windows(任何分支)或macOS(分支2171或更早版本)上执行64位构建,请设置GYP_DEFINES=target_arch=x64(仅GYP)或构建out/[Debug|Release]_GN_x64目标(仅限于GN)。 要在64位Linux系统上执行32位Linux构建,请参阅AutomatedBuildSetup Wiki页面上的说明。

6.设置GYP_DEFINES=buildtype=Official(仅限GYP)或GN_DEFINES=is_official_build=true(仅限GN)来执行“官方”构建集。这将禁用调试代码,并启用发布版本中的附加链接时优化。有关其他官方构建建议,请参阅AutomatedBuildSetup Wiki页面上的说明。

7.Windows –

       如果您的系统上安装了多个版本的Visual Studio,您可以将GYP_MSVS_VERSION环境变量设置为该版本的项目文件。例如,将VS2013的值设置为“2013”,为VS2015设置“2015”。使用其他Visual Studio版本时,请从Chromium文档中确认正确值。

     如果您希望使用Visual Studio进行调试和编译,并结合Ninja构建,您可以设置GYP_GENERATORS=ninja,msvs-ninja(仅GYP)或GN_ARGUMENTS=–ide=vs2015 –sln=cef –filters=//cef/*(仅GN)生成Ninja和VS项目文件。 Visual Studio仅用于调试和编译各个源文件-它不会成功构建整个目标。 您必须使用nijia构建CEF/Chromium目标。


Updated 

文章作者:hgy413
本文地址:https://hgy413.com/4301.html
版权所有 © 转载时必须以链接形式注明作者和原始出处!

本文目前尚无任何评论.

发表评论