CEF127 编译指南 MacOS 篇 - 拉取 CEF 源码(五)

1. 引言

在完成了所有必要工具的安装和配置后,我们进入到获取 CEF 源码的阶段。对于 macOS 平台,CEF 的源码获取过程需要特别注意不同芯片架构(Intel 和 Apple Silicon)的区别以及版本管理。本文将详细介绍如何在 macOS 系统上获取并准备 CEF 源码,包括创建工作目录、下载初始代码以及同步依赖项等步骤。

2. 工作目录准备

2.1 创建目录结构

复制代码
# 创建主要工作目录
mkdir -p ~/code/chromium_git
mkdir -p ~/code/automate

# 进入工作目录
cd ~/code

2.2 目录结构说明

  • ~/code/chromium_git:存放 Chromium 和 CEF 源码
  • ~/code/automate:存放自动化脚本
  • ~/code/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_git

cat <<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=6533 \\
  --x64-build

# 为 Apple Silicon Mac,替换最后一行为:
# --arm64-build
EOL

3.3 设置脚本权限

复制代码
chmod 755 update.sh

4. 拉取源码

4.1 配置环境变量

复制代码
# 设置基本环境变量
export CEF_USE_GN=1
export GN_DEFINES="is_official_build=true use_sysroot=true symbol_level=1"
export CEF_ARCHIVE_FORMAT=tar.bz2

# 对于 Apple Silicon Mac 额外添加
# export GN_DEFINES="is_component_build=true"

4.2 执行更新脚本

复制代码
cd ~/code/chromium_git
./update.sh

📢 重要提示:

  • 源码下载过程可能需要几个小时
  • 确保有稳定的网络连接
  • 需要大约 150GB 的磁盘空间
  • 下载过程中可能出现断点续传

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 代理
git config --global http.proxy http://proxy.example.com:8080

# 断点续传
# 重新运行 update.sh 脚本,会从断点继续

6.2 空间问题

如果磁盘空间不足:

  1. 清理其他不必要的文件
  2. 使用外部存储设备
  3. 确保至少有 150GB 可用空间

6.3 权限问题

复制代码
# 修复权限问题
sudo chown -R $(whoami) ~/code/chromium_git
chmod -R u+w ~/code/chromium_git

7. 结语

通过本文的操作,我们已经完成了 CEF 源码的获取和准备工作。这个过程虽然看起来简单,但是正确的配置和足够的耐心是成功的关键。确保所有步骤都准确执行,这将为后续的编译工作打下坚实的基础。

在下一篇文章《CEF127 编译指南 MacOS 篇 - 配置编译环境(六)》中,我们将继续介绍如何配置编译环境,包括设置特定的 SDK 版本和编译参数等内容。让我们继续这个循序渐进的 CEF 编译之旅。

相关推荐
晴天1615 小时前
Chrome DevTools 深度调试指南
前端·chrome·chrome devtools
hanchenxing19 小时前
自动化脚本“卡住无输出“怎么办: 一次 WebSocket 挂死的排查与自愈模板
运维·javascript·chrome·websocket·自动化·自动化爬虫
摸鱼仙人~1 天前
需求深度分析提示词-grill me
前端·chrome
web打印社区2 天前
Vue3 发票静默打印,我这边能跑通的一版
前端·javascript·vue.js·chrome·electron
IT小白杨2 天前
TikTok多账号运营体系安全运营攻略:移动端优先架构下的环境隔离技术解析
大数据·经验分享·tcp/ip·安全·架构·指纹浏览器
BD_Marathon2 天前
调用DeepSeek官网的DeepSeek模型
开发语言·chrome·python
前端世界2 天前
Linux服务器实战:日志越来越大怎么办?用Logrotate+DNS解决日志管理与内网访问问题
linux·服务器·chrome
嘉琪coder2 天前
我做了一个 Chrome 扩展,把 YouTube 播放列表批量变成 AI 可读的本地 Markdown
chrome·开源·浏览器
web打印社区3 天前
浏览器静默打印?先别装第三个库了
前端·vue.js·chrome·electron·pdf
IT小白杨3 天前
eBay多账号如何应对关联判定:主体、收款、IP、环境四层配置清单一次讲清
java·网络·网络协议·tcp/ip·自动化·指纹浏览器