操作系统:Windows 11
编译环境:WSL2 + debian11/Ubuntu20.04
占用空间100G左右,建议磁盘拥有200G的空间。
WSL可能会突然内存/磁盘读取爆炸,限制线程数即可。
建议对大仓库做一下本地镜像。
构建脚本编写依据:https://github.com/loongson/nw.js
目前仅支持nw80
- 执行
tools/install-deps.sh, 安装必要的依赖 - 执行
tools/setup.sh, 开始执行构建流程
使用loongarch硬件或者qemu,qemu请参考: run-qemu
https://github.com/Kitware/CMake/releases?page=9
apt install -y libmpc-dev texinfo bison flex
有时候会出现多线程导致的编译失败,重新跑就行。
apt install -y ninja-build python3
export NO_AUTH_BOTO_CONFIG="/home/msojocs/.boto"
.boto内容
[Boto]
debug = 0
num_retries = 10
proxy = 127.0.0.1
proxy_port = 7890
确保 python 指向 python2
./build/install-build-deps.sh sudo apt install xz-utils python curl libcups2-dev libglib2.0-dev \ libnss3-dev \ libxkbcommon-dev \ libdrm-dev \ libgbm-dev \ libpango1.0-dev \ libdbus-1-dev \ gperf \ libx11-xcb-dev \ libkrb5-dev \ libpulse-dev \ libpci-dev \ libglx-dev
修改:nwjs/src/build/config/linux/libffi/BUILD.gn link:
config("libffi") {
#libs = [ ":libffi_pic.a" ] # 注释掉
libs = [ "ffi" ] # 新增一行
}
sudo apt-get install gcc-multilib g++-multilib
如果构建失败,参考 payload.patch 修改;
就是把 base::ListValue 替换成 base::Value::List,把 base::DictionaryValue 替换成 base::Value::Dict;
然后,还有把对应方法替换一下。
| 项目 | 值 |
|---|---|
| ABI | loongarch64-unknown-linux-gnu |
| ARCH | loong64 |
| libdir | lib64 |
| sysroot | debian_bullseye_loong64-sysroot |
"bullseye_loong64": { "Key": "20230611T210420Z-2", "Sha1Sum": "1b857baabd7999ff0d6949a8973f896836ac45ac", "SysrootDir": "debian_bullseye_loong64-sysroot", "Tarball": "debian_bullseye_loong64_sysroot.tar.xz", "URL": "https://commondatastorage.googleapis.com/chrome-linux-sysroot/toolchain" }