前言:
- electron 采用chrome 编译工具链;
- chrome 相关编译见:https://blog.csdn.net/weixin_44503157/article/details/122861075?spm=1001.2014.3001.5501
步骤:
- 选择需要的版本:在electron release 中找到需要的版本(通常根据chrome 版本来选,定electron、node 的版本) https://github.com/electron/releases
- 构建 .gclient文件,匹配对应需要的electron 版本
solutions = [
{ "name" : 'src/electron',
"url" : 'https://github.com/electron/electron@v22.0.0-alpha.1',
"deps_file" : 'DEPS',
"managed" : False,
"custom_deps" : {
},
"custom_vars": {},
},
]
- gclient 文件目录直接sync:
gclient sync --with_branch_heads --with_tags
(electron 的deps 有添加hooks 操作,会直接拉取chrome以及子仓库,并将patch 打好) - 选择自己需要的target 构建、编译
# 进入 src 目录
cd src
# 设置临时的环境变量
set CHROMIUM_BUILDTOOLS_PATH=%cd%\buildtools
# 生成工程(Testing)
gn gen out/Testing --args="import(\"//electron/build/args/testing.gn\")"
# 生成工程(Release)
gn gen out/Release --args="import(\"//electron/build/args/release.gn\")"
# 生成工程(debug)
gn gen out/Debug --args="import(\"//electron/build/args/debug.gn\")"
# 编译 testing 版本
ninja -C out/Testing electron
注:部分版本chromium 已经将ninja 放在了third_party下,但是有些版本deps 中没有带,需要去高版本拷贝再sync使用
参考
- https://github.com/electron/electron
- https://www.electronjs.org/docs/latest/development/build-instructions-windows
- https://github.com/electron/releases
- https://blog.csdn.net/qq_27395289/article/details/110422777