1、平台
Win10 64bit
Visual studio 2017 update8
至少4G RAM,建议8G,当然越多越好。40G硬盘空间。
2、源码
firefox-63.0.source.tar.xz。解压至:d:\firefox63
3、前言
大多数windows机器上并没有安装Mozilla编译过程需要的众多工具。除Visual Studio外,你必须安装MozillaBuild,该工具是一系列软件的合集,包括正确版本的bash, GNU make, autoconf, Mercurial和其它许多的软件。
https://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/MozillaBuildSetup-Latest.exe
4、准备工作
4.1 Visual Studio
版本最低要求为Visual Studio 2017 Update 6(15.6)。本文使用版本15.8。
注:由于Visual Studio 2017 Update 7(15.7)存在bug,所以需要版本15.6或版本15.8。
安装时选择:
- 使用C++的桌面开发
- 使用C++的游戏开发
同时需要添加组件:
- Windows 10 SDK (10.0.10240.0)
- Windows 10 SDK (最新版,最低支持10.0.15063.0)
- Visual C++ ATL support
特别说明:Clang-cl不支持10.0.16299.0。
安装完成后,要运行一次VS 2017 IDE,以让程序执行首次安装的任务,以完成初始化。
4.2 安装MozillaBuild
MozillaBuildSetup-3.2.exe。
将C:\mozilla-build,加入到系统环境变量中,并上移到最前。
需要注意的是如果路径中有空格、加号、引号等字符,Mozilla将不能编译,故强烈建议接受默认的安装设置。但Visual Studio tools和SDKs例外,这些工具安装的路径可能有空格。
建议在桌面创建C:\mozilla-build\start-shell.bat的快捷方式,这样可以节省很多时间。
4.3安装rust
Source\Rust\rust-1.30.0-i686-pc-windows-msvc.msi,根据不同的平台选择。路径选择:C:\rust。
注:编译32位用i686-pc-windows-msvc;编译64位用x86_64-pc-windows-msvc。
- 检查PATH
- cmd,查看版本:
输入rustc -V
输入cargo -V
4.4 安装LLVM and Clang
安装LLVM and Clang,地址如下:
http://releases.llvm.org/download.html
A、先安装32位的LLVM
若编译64位的firefox则不需要。
Source\LLVM\7.0.0\LLVM-7.0.0-win32.exe。
假定安装目录为:C:\LLVM32
提供32位的libclang.dll供使用。否则直接用64位的libclang.dll时会提示无效64位的dll。
B、然后安装64位的LLVM
Source\LLVM\7.0.0\LLVM-7.0.0-win64.exe。
32位的会错:LLVM ERROR: out of memory
假定安装目录为:C:\LLVM64
设置路径。
注:32位和64位安装顺序不能搞混,否则会错误调用32位lld-link.exe,出现out of memory错误。
4.5 添加rust包
- Cbindgen
命令:cargo install cbindgen
否则会有如下错误:
5、编译
5.1 修改mozilla-build查询路径
用记事本打开C:\mozilla-build\start-shell.bat,修改如下:
SET PATH=C:\mozilla-build;C:\rust\bin;%SystemRoot%\System32;%SystemRoot%;%SystemRoot%\System32\Wbem
start-shell.bat,查看版本:
输入rustc -V
输入cargo -V
5.2 mozconfig
开启编译stylo。
在源代码目录中新建文本文件“mozconfig”,内容如下:
# mozilla config stylo
#ac_add_options --with-libclang-path="C:/LLVM/lib"
ac_add_options --with-clang-path="C:/LLVM64/bin/clang.exe"
ac_add_options --with-libclang-path="C:/LLVM32/bin"
5.3 配置使用clang-cl编译(可选)
若采用clang-cl替代MSVC's cl.exe,采用lld-link替代MSVC's link.exe,则在mozconfig,添加如下内容:
export CC="clang-cl.exe"
export CXX="clang-cl.exe"
export LINKER="lld-link.exe"
5.4 执行编译
运行start-shell.bat,这样会启动GNU BASH。
cd /d/firefox63
./mach build
全程一个多小时后即可获得,在obj-i686-pc-mingw32\dist\bin获得编译结果。
6. 中文包
在FireFox地址栏里输入"about:config" 回车,输入general.useragent.locale,双击该项然后再弹出的对话框里输入"zh-CN",确定。
重启浏览器后FireFox就变为中文版的了。