这部分讲解CEF的分支信息并介绍下载编译和打包源代码
背景:
CEF项目是做为Chromium的扩展项目而存在的,CEF跟Chromium一样地维护两个版本,开发版和发布版。CEF源代码既可以手动编译,也可以用工具自动编译
发展:
CEF项目在不断的发展中,你可以从这里看到整个项目的文件
trunk,因为当前的版本紧跟Chromium,所以不推荐拿当前的版本来开发发布版的产品。下面的链接可以用来下载CEF的开发版源码:
remind:你点开上面的链接时,你会发现这是一个svn工程的目录,如果以前是用VSS的,你可能觉得svn很陌生,不要尝试一个一个地去下载里面的文件。这里有个简单的方法可以下载整个文件夹:先下载一个TortoiseSVN,下完后安装,但是你不会看到有什么的TortoiseSVN的运行程序,因为它是内嵌到Windows里面的,你应该在任意的盘符下面创建一个空的文件夹,右键点击这个文件夹,点击菜单项【TortoiseSVN】->【export】,在URL文件框里面输入上面的链接后点确定,然后现在个工程文件都会下下来。
发布版:
CEF随着Chromium发布版也提供一个最新的发布版,推荐用户用发布版本做为开发产品的环境,原因有如下几点:
1.二进制的CEF是用特定的Chromium发布版编译出来的
2.发布版的CEF/Chromium经过了更好的测试,而且更加适合开发发布版的应用程序
3.发布版更加稳定
4.CEF发布版可以包含必要的Chromium/WebKit版本
5.CEF以后的更新不会干扰用户的发布计划
CEF版本号有如下形式:X.Y.Z,其中X是CEF主版本号,Y是发布版版本号,而Z是CEF校对号,有关CEF和Chromium版本更详细的内容,你可以去include/cef_version.h里面找到,下面的表格列出当前的CEF发布版本:
发布版本 | Chromium版本 | CEF1支持性 | CEF3支持性 |
963 | 17 | 是 | 否 |
1025 | 18 | 是 | 否 |
1084 | 19 | 是 | 否 |
1180 | 21 | 是 | 是 |
1271 | 23 | 是 | 是 |
1364 | 25 | 是 | 是 |
1453 | 26 | 是 | 是 |
你可以在下面的链接中下载发布版的CEF, 其中YYYY是发布版的版本号:
这里值得注意的是版本963和1025是只包含有CEF1的源代码,要想了解CEF发布版的版本号怎么来的,你可以点击旁边这个链接:
here
编译源代码:
当前支持在Windows,Mac OS-X和Linux环境下编译源代码,而要想编译成功,你的电脑必须至少有4GB的系统内存(因为我用的Windows,所以在Mac或Linux环境下的要求我就没有翻译了)。
在编译Chromium和CEF源码之前,你必须配置好你的编译环境:
1.为你的操作系统和开发环境安装必要的包:
Windows环境下点击右边的链接:
http://www.chromium.org/developers/how-tos/build-instructions-windows(这个我将在下一章中给出译文)
配置好操作系统和编译环境以后,还要用旁边的链接去下载TortoiseSVN工具:
http://sourceforge.net/projects/tortoisesvn/files/1.6.16/Application/
2.配置环境可以影响GYP
CEF目前还不支持组件开发
Windows - 如果你的操作系统里面安装了多个Virual Studio,你可以设置环境变量GYP_MSVS_VERSION为一个适当的值,如果你想用VS2008来编译工作,你应该把这个值设成2008,如果你想用Vs2010 Express来编译工程,那你就应该把这个环境变量设成2010e, 如果是别的Visual Studio版本,那你就要去Chomium帮助文档去查找更详细的信息,但是估计也应该是同一个套路,假如你是vs2005,那肯定就是设成2005了。
自动的方法:
CEF提供工具,用来自动下载、编译、打包Chromium和CEF源代码,这个方法对开发版和发布版是同样有用,你可以按下面的步骤来完成自动操作:
1.下载自动工具 automate.py:
用SVN checkout下面的URL:
http://chromiumembedded.googlecode.com/svn/trunk/cef1/tools/automate /path/to/automate
2.运行automate.py脚本:
在任何合适的时间,你可以运行automate.py这个脚本(如每周每天每次CEF提交的时间),并使用你想要的CEF版本。
python /path/to/automate/automate.py --download-dir=/path/to/download --url=http://chromiumembedded.googlecode.com/svn/branches/1084/cef1
如果这个操作成功了,一个二进制形式的包会被创建在
/path/to/download/chromium/src/cef/binary_distrib
如果你要想查找完整的使用介绍,点下面的链接: automate.README.txt
这个方法也被完美地整合到了一些自动编译系统如 TeamCity
(译完这段我感到浑身冷汗,因为什么TeamCity、TortioseSVN...全都一无所知,想想从业也三四年了,却离it这条路越走越远,在上个公司呆的两年多完全是封闭的两年多,天天整些CAD,用写好的API,做些重复的工作,什么新的技术都没学到,反而把老本都蚀完了,现在是时候奋起直追了。但转念一想,我还能再追几年,以我的年纪我还能追几年? 学什么走哪块,才能让我虽不说蒸蒸日上但却能有口盒饭吃呢?)
手动下载:
Chromium和CEF可以手动下载和编译,但这更加复杂,所以不向所有用户推荐。
开发版:
下面这些下载的介绍仅适合CEF1&CEF3开发版。
1.安装depot_tools并且下载Chromium源代码,你可以按照这个链接的内容来做http://dev.chromium.org/developers/how-tos/get-the-code,也可以按照下面的四个步骤来做,但是为了避免一些潜在的问题,你最好设置chromium和depot_tools的下载目录尽可能的短,并且不要包含空格和特殊字符。
A. 装一个1.6.x版本的SVN端,并且加到你的PATH里面去
B. 通过SVN来下载depot_tools
svn co http://src.chromium.org/svn/trunk/tools/depot_toolsC. 增加 depot_tools的目录到你的PATH,在Windows下depot_tools的路径应该要放在TortoiseSVN的前面
D. 创建一个Chromium签出目录(例如,/path/to/chromium),并且配置gclient如下:
cd /path/to/chromium gclient config http://src.chromium.org/chrome/trunk/srcremind: 上面这段你只要复制到cmd里面去运行就可以了
2. 在CEF的顶层目录下查看
CHROMIUM_BUILD_COMPATIBILITY.txt,并找到你需要的Chromium版本,这可能会发生改变,因为CEF是随着最新版本的Chromium改变而改变的
3. 更新Chromium到合适的版本
cd /path/to/chromium gclient sync --revision src@chromium_revision --jobs 8 --force4. 下载CEF源代码到"cef"文件夹,而且这个文件夹必须包含在Chromium的"src"文件夹目录下,你最好只下载CEF1或CEF3而不要两者都下,假设你的Chromium源代码下载在 "/path/to/chromium/src",那么你的CEF源代码就应该放在"/path/to/chromium/src/cef"。注意不管你下的是CEF1或CEF3,文件夹名都必须命名为"cef"
cd /path/to/chromium/src svn co http://chromiumembedded.googlecode.com/svn/trunk/cef1 cef
发布版:
发布版和开发版基本的操作是一样的,只不过是把有Debug的地方改成Release而已。具体的你可以查看原文链接。
手动编译:
1.运行cef_create_project脚本(windows下用.bat, OS-X和linux下用.sh)去产生一个在GYP配置下的编译文件
cd /path/to/chromium/src/cef ./cef_create_projects.sh
2.编译CEF
windows下你可以直接用Visual Studio 的.sln文件编译,做为替代的方法,你也可以在命令行下运行脚本build_projects来编译整个工程,
cd /path/to/chromium/src/cef/tools build_projects.sh Debug
手动打包:
当编译好开发版和发布版后,你可以用make_distrib工具(windows用.bat,OS-X和Linux用.sh)去创建一个二进制分发包。
cd /path/to/chromium/src/cef/tools make_distrib.sh如果这个过程成功了,一个二进制的分发包会生成在 /path/to/chromium/src/cef/binary_distrib目录中。
你可以去make_distrib.py脚本下看到更多的使用信息。