macOS上编译 - Fluorohydride/ygopro GitHub Wiki
YGOPro macOS 编译指南
注意:macOS编译支持仍处于实验性阶段,欢迎贡献改进。
1. 准备工作
1.1 所需软件
-
YGOPro发行版
- 用以获取卡片数据库和卡图等资源,其中数据库是必备的
-
Git
-
Homebrew
-
Command Line Tools for Xcode
- 通常在安装Homebrew或Xcode时自动安装
- 项目不使用Xcode IDE
-
- 项目支持Premake和CMake两种构建系统,但CMake近期无人维护,推荐使用Premake
1.2 依赖库
通过Homebrew安装以下依赖:
brew install premake freetype libevent libx11 sqlite zlib
以下依赖库需要手动下载源代码并静态编译:
-
- 这是Irrlicht的修改版,增加了中文支持等功能
- 不支持原版Irrlicht
-
- 仅支持5.3.x和5.4.x版本
- 需要使用C++编译而非默认的C编译,因此需要静态编译
-
- 因项目特点,无法通过Homebrew等包管理器安装,需要静态编译
- 仅支持0.11.22版本,且需使用其中的
miniaudio_split
版本
2. 获取源代码
2.1 克隆代码仓库
使用Git克隆代码仓库,确保包含所有子模块:
# 完整克隆代码及子模块(推荐方式)
git clone --recursive https://github.com/Fluorohydride/ygopro.git
cd ygopro
# 或分步操作
git clone https://github.com/Fluorohydride/ygopro.git
cd ygopro
git submodule update --init
# 切换子模块到正确分支
cd ocgcore
git checkout master
cd ..
cd script
git checkout master
cd ..
2.2 安装依赖库
- 将下载的Irrlicht解压到项目根目录,并重命名为
irrlicht
- 将下载的Lua解压到项目根目录,并重命名为
lua
- 下载miniaudio,并将
miniaudio/extras/miniaudio_split
中的c和h文件复制到项目根目录中的miniaudio
文件夹(请手动创建)
2.3 复制描述文件
将premake文件夹内所有子文件夹复制到项目根目录,这些文件夹包含了编译各个依赖库所需的premake描述文件。
cp -r premake/* .
3. 生成项目并编译
3.1 生成项目文件
使用Premake生成makefile:
premake5 gmake
如果是在Apple Silicon上编译,因为Homebrew把依赖库安装在了非标准的目录下,需要改为使用以下命令:
DYLD_LIBRARY_PATH=$(brew --prefix)/lib premake5 gmake
3.2 目录结构
配置成功后,项目目录结构大致如下(部分文件省略):
├── build
├── gframe
├── irrlicht
│ ├── include
│ └── source
│ └── Irrlicht
├── lua
│ └── src
├── miniaudio
├── ocgcore
├── script
├── sound
└── textures
3.3 编译项目
进入build目录并执行make命令:
cd build
make config=release # 或 make config=debug
编译完成后,生成的可执行文件位于 bin/release
或 bin/debug
目录下。
4. 运行与调试
4.1 基本运行
-
从YGOPro发行版中复制以下文件到项目根目录:
cards.cdb
pics
文件夹deck
文件夹
-
建立符号链接以便于运行:
ln -s bin/release/YGOPro.app ./ygopro # 或 ln -s bin/debug/YGOPro.app ./ygopro
-
运行
./ygopro
4.2 使用App包
-
生成App包
mkdir -p ygopro.app/Contents/MacOS cp ./bin/release/YGOPro.app ./ygopro.app/Contents/MacOS/ygopro
-
运行程序
./ygopro.app/Contents/MacOS/ygopro
或者从访达中双击
ygopro.app
运行。程序会自动判断所在路径,选择正确的工作目录。
因为App包未签名,第一次运行时可能会提示“无法打开,因为它来自身份不明的开发者”,需在系统设置中允许打开。
TODO: 目前程序工作方式并不像其他macOS应用那样。应把数据库和卡图等资源文件放到
Contents/Resources
目录下,把配置和卡组等文件放到用户目录下。
5. 常见问题
见 编译常见问题