1. 引言
在完成了所有必要工具的安装和配置之后,我们正式进入获取 CEF132 源码的阶段。对于 macOS 平台,CEF 的源码获取过程需要特别注意不同芯片架构(Intel 和 Apple Silicon)的区别以及版本管理。本篇将作为 CEF132 编译指南系列的第五篇,详细介绍如何在 macOS 系统上获取并准备 CEF 源码,包括创建工作目录、下载自动化脚本以及同步依赖项等步骤。
2. 工作目录准备
2.1 创建目录结构
首先,我们需要创建存放代码和工具的目录结构:
# 创建用于存放 Chromium 和 CEF 源码的目录
mkdir -p ~/code/chromium_git
# 创建用于存放自动化脚本的目录
mkdir -p ~/code/automate
# 进入工作目录
cd ~/code
2.2 目录结构说明
~/code/chromium_git
:用于存放 Chromium 和 CEF 的源代码。~/code/automate
:用于存放自动化构建和更新脚本。~/code/depot_tools
:用于存放 depot_tools 工具集(在之前的步骤中已经创建)。
3. 下载自动化脚本
3.1 获取自动化脚本
cd ~/code/automate
curl -o automate-git.py https://bitbucket.org/chromiumembedded/cef/raw/master/tools/automate/automate-git.py
3.2 创建更新脚本
在 ~/code/chromium_git
目录中创建 update.sh
脚本:
cd ~/code/chromium_gitcat <<EOL > update.sh
#!/bin/bash
# 为 Intel Mac
python3 ../automate/automate-git.py \\--download-dir=/Users/\$USER/code/chromium_git \\--depot-tools-dir=/Users/\$USER/code/depot_tools \\--no-distrib \\--no-build \\--branch=6834 \\--x64-build
# 为 Apple Silicon Mac,替换最后一行为:
# --arm64-build
EOLchmod 755 update.sh
注意:这里我们指定了--branch=6834
,对应CEF 132版本
3.3 设置脚本权限
为 update.sh
脚本添加执行权限:
chmod 755 update.sh
4. 拉取源码
4.1 配置环境变量
在拉取源码之前,我们需要配置一些环境变量:
# 设置 CEF 使用 GN 构建系统
export CEF_USE_GN=1# 设置 GN 构建参数
export GN_DEFINES="is_official_build=true use_sysroot=true symbol_level=1"# 设置 CEF 压缩包格式
export CEF_ARCHIVE_FORMAT=tar.bz2# 对于 Apple Silicon Mac,额外添加以下配置
# export GN_DEFINES="is_component_build=true"
4.2 执行更新脚本
现在,我们可以执行 update.sh
脚本来拉取 CEF 源码:
cd ~/code/chromium_git
./update.sh
重要提示:
- 源码下载过程可能需要数小时,具体时间取决于您的网络速度。
- 请确保您的网络连接稳定。
- 下载过程需要大约 150GB 的磁盘空间,请确保您的磁盘有足够的可用空间。
- 下载过程中可能会出现中断,
update.sh
脚本支持断点续传,重新运行脚本即可从上次中断的地方继续下载。
5. 源码管理
5.1 验证源码结构
下载完成后,检查目录结构是否正确:
ls -la ~/code/chromium_git/chromium/src
ls -la ~/code/chromium_git/cef
5.2 目录说明
chromium/src
:存放 Chromium 的源代码。cef
:存放 CEF 的源代码。chromium/src/cef
:CEF 的构建目录。
6. 常见问题处理
6.1 网络问题
如果您在中国大陆地区遇到网络连接问题,可能需要配置 Git 代理:
# 设置 HTTP 代理(根据您的实际代理地址修改)
git config --global http.proxy http://your_proxy_address:your_proxy_port
git config --global https.proxy https://your_proxy_address:your_proxy_port# 取消代理
git config --global --unset http.proxy
git config --global --unset https.proxy
将 your_proxy_address
和 your_proxy_port
替换为您实际的代理地址和端口。
如果下载过程中断,可以重新运行 update.sh
脚本,它会自动从断点处继续下载。
6.2 空间问题
如果磁盘空间不足:
- 清理其他不必要的文件,释放磁盘空间。
- 考虑使用外部存储设备。
- 确保至少有 150GB 的可用磁盘空间。
6.3 权限问题
如果遇到权限问题,可以尝试修复文件权限:
sudo chown -R $(whoami) ~/code/chromium_git
chmod -R u+w ~/code/chromium_git
7. 结语
通过本篇的详细步骤,您已经成功获取并准备好了 CEF132 的源码。这个过程虽然看似简单,但正确的配置和足够的耐心是成功的关键。确保所有步骤都准确执行,这将为后续的编译工作奠定坚实的基础。
在下一篇《CEF132 编译指南 MacOS 篇 - 构建 CEF (六)》中,我们将详细介绍如何在 macOS 环境下配置和执行 CEF132 的编译过程,包括设置特定的 SDK 版本和编译参数等内容。让我们继续这段激动人心的 CEF 编译之旅,为构建功能强大的桌面应用打下坚实的基础!