mirror of
https://github.com/MatsuriDayo/nekoray.git
synced 2025-12-17 20:44:38 +03:00
3.3 KiB
3.3 KiB
在 macOS 下编译 Nekoray
git clone 源码
git clone https://github.com/MatsuriDayo/nekoray.git --recursive
全部依赖:
- C++ 依赖:
protobuf yaml-cpp zxing-cpp已用包管理器安装,并符合版本要求。 - 已安装
qtbaseqtsvgqttoolsqtx11extras。 - 已安装 Qt
5.12.x或5.15.x,并设置好有关环境变量。 - 安装
appdmg(可以来自包管理器npm)
复杂编译法
CMake 参数
| CMake 参数 | 默认值 | 含义 |
|---|---|---|
| QT_VERSION_MAJOR | 5 | QT版本 |
| NKR_NO_EXTERNAL | 不包含外部 C/C++ 依赖 (以下所有) | |
| NKR_NO_YAML | 不包含 yaml-cpp | |
| NKR_NO_QHOTKEY | 不包含 qhotkey | |
| NKR_NO_ZXING | 不包含 zxing | |
| NKR_NO_GRPC | 不包含 gRPC | |
| NKR_NO_QUICKJS | 不包含 quickjs | |
| NKR_PACKAGE | 编译 package 版本 (aur) | |
| NKR_PACKAGE_MACOS | 编译 macos 版本 | |
| NKR_LIBS | ./libs/deps/built | 依赖搜索目录 |
| NKR_DISABLE_LIBS | 禁用 NKR_LIBS |
NKR_LIBS的值会被追加到CMAKE_PREFIX_PATHNKR_PACKAGE打开后,NKR_LIBS的默认值为./libs/deps/package,具体依赖请看build_deps_all.shNKR_PACKAGE_MACOS或NKR_PACKAGE打开后,应用将使用 appdata 目录存放配置,自动更新等功能将被禁用。
C++ 部分
当您的没有上面几个 C++ 依赖包,或者版本不符合要求时,可以参考 build_deps_all.sh 编译脚本自行编译。
条件: 已安装 Qt 5.12.x 或 5.15.x
编译安装 C/C++ 依赖
(这一步可能要挂梯)
./libs/build_deps_all.sh
编译本体
mkdir build
cd build
cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DNKR_PACKAGE_MACOS=1 ..
ninja
编译完成后得到 nekoray
Go 部分
- 把
Matsuridayo/MatsuriMatsuridayo/v2ray-core置于../ - 进入
go/cmd/nekoray_core文件夹go build得到nekoray_core。 - 进入
go/cmd/nekobox_core文件夹go build得到nekobox_core。
非官方构建无需编译 updater launcher
打包
安装appdmg
sudo npm install -g appdmg
然后在nekoray目录下打包
appdmg appdmg.json /path/to/nekoray.dmg
使用
右键nekoray,选择"显示包内容",将core和geo文件放在Contents/MacOS/中。
geo*
curl -Lso /Applications/nekoray.app/Contents/MacOS/geoip.dat "https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geoip.dat"
curl -Lso /Applications/nekoray.app/Contents/MacOS/geosite.dat "https://github.com/v2fly/domain-list-community/releases/latest/download/dlc.dat"
curl -Lso /Applications/nekoray.app/Contents/MacOS/geoip.db "https://github.com/SagerNet/sing-geoip/releases/latest/download/geoip.db"
curl -Lso /Applications/nekoray.app/Contents/MacOS/geosite.db "https://github.com/SagerNet/sing-geosite/releases/latest/download/geosite.db"