跳转至

Electron源码在windows平台编译过程记录

一、 获取源码

获取全程需要科学上网的支持,为啥不找国内镜像下载呢,国内镜像只是下载electron这个仓库的代码,并不会自动拉取依赖。

a. 下载depot_tools工具包

depot_tools是谷歌用于管理大仓库代码的工具,这里我们需要它。

cd E:\tools
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

拉取成功后,设置环境变量PATH=E:\tools\depot_tools

Warning

这个环境变量必须在git和python的前面,这样就没有了git和python版本的干扰,设置完成之后,就可以使用gclient,gn等脚本了

继续设置环境变量

#禁用depot_tools的自动更新
set DEPOT_TOOLS_UPDATE=0
#告诉depot_tools,不下载visual studio,使用单独下载的visual studio
set DEPOT_TOOLS_WIN_TOOLCHAIN=0
#设置git缓存路径,git不支持断点续传,下载时很有可能中断,这个时候缓存非常有用
set GIT_CACHE_PATH=E:\git_cache

b. 生成.gclient文件

cd E:\work\opensource
mkdir electron && cd electron
#生成.gclient文件,指定tag版本
gclient config --name "src/electron" --unmanaged https://github.com/electron/[email protected]

Tip

为什么--name的值是src/electron呢?因为electron是作为chromium的一个子项目管理的,编译脚本中路径已经写死,代码拉下来后,目录结构是这样的 image_20220223184526.png

c. 同步代码及依赖

gclient sync --nohooks --no-history

Tip

--nohooks:代码拉取完成后,不执行hook操作

--no-history:不拉取历史提交信息,可大大减少流量

这个过程会持续2-3h。。。

d. 执行额外hook脚本

gclient runhooks

Tip

这个过程会拉取项目依赖的二进制文件,比如clang编译器等,这一步消耗时间不会太多,执行完成后,整个代码及其依赖,二进制依赖都已成功下载到本地

不出意外的话肯定会有意外,意外情况--->传送门

二、编译源码

我下载的版本是4.2.12,这个版本按照编译脚本中的指示,只能用vs2017编译,主要是咱也不敢换其他编译器啊😆

除了vs版本,还需要win10 sdk的支持,在src/build/toolchain/win/setup_toolchain.py中,我们可以看到需要10.0.17134.0win10 sdk,意味着我们需要下载指定的win10 sdk,下载地址:这是个传送门

image_20220223191107.png

准备工作完成之后呢,就可以开始编译了

cd src
#设置vs2017的目录
set vs2017_install=F:\visual studio\Microsoft Visual Studio\2017\Community
#设置chromium构建工具目录
set CHROMIUM_BUILDTOOLS_PATH=%cd%\buildtools
#生成debug版本
gn gen out/debug --args="import(\"//electron/build/args/debug.gn\")"
#编译
ninja -C out/debug electron

编译中可能出现的问题---->传送门

如果完全按照上面的方法做的话,编译不会出现问题,因为谷歌的大佬们已经将代码依赖管理的非常好了。


本文总阅读量
回到页面顶部