操作系统: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 python3export 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"
}