首页 > 编程语言 >个人向 godot 源码阅读 - 1 - 获取 / 编译源码

个人向 godot 源码阅读 - 1 - 获取 / 编译源码

时间:2024-06-06 16:56:11浏览次数:12  
标签:godot git mono 编译 源码 stable

1 - 获取 / 编译源码

获取

最常见的方法便是从 GitHub 上拉取, 不过鉴于国内访问 GitHub 速度之慢, 可以采取个折中的方案: 先从 Gitee 上拉取:

git clone https://gitee.com/mirrors/godot

然后更改 remote 地址:

git remote set-url origin https://github.com/godotengine/godot.git

再更新到最新的一个 commit:

git pull

那么目前, 源码就算拉完了, 不过我们是在的最新 commit 上, 难免出现各种 bug 以及重构中的代码, 所以我们查询最新的 stable 并切换:

git tag
...
4.1.4-stable
4.2-stable
4.2.1-stable
4.2.2-stable
(END)
git checkout 4.2.2-stable

等待一小会, 你就拥有了一个 stable 版本的源码了.

编译

godot 使用了一个 python 工具 scons 作为编译工具, 那么自然你需要先安装 scons:

pip install scons

相比编译一个和官方版本几乎一致的 godot, 我们不妨再来一点有趣的东西, 比如在版本信息上加入自己的字符串, 以及生成一些用于我们打算用来浏览代码的 vs 的配置文件.
这个过程很简单, 我们只需在根目录创建一个 custom.py, 然后写入下列内容:

module_mono_enabled = "yes" # 启用 .NET 模块
dev_build = "yes" # 使用开发版本配置, 以便我们可以进行调试

对于版本信息上的后缀则需要一个环境变量, 这里及后续我们都假设你正在使用 powershell(7.4.0):

$env:BUILD_NAME = "sap_build"

然后最终开始我们的编译(并生成 vs 的项目文件):

scons p=windows target=editor arch=x86_64 vsproj=yes

然后静静等待你的 cpu 咆哮 1h.jpg, 当你看到 [Time elapsed: 01:12:17.053] 的字样后就代表编译成功了. 你可以在 bin 目录下得到你的编译产品.

此外由于我们开启了 .NET 模块, 所以我们还需要再编译托管层代码:

首先调用编译好的 godot 生成所有的胶水类:

./bin/godot.windows.editor.dev.x86_64.mono.exe --headless --generate-mono-glue modules/mono/glue

然后调用脚本唤起 msbuild 编译 C# 项目:

python ./modules/mono/build_scripts/build_assemblies.py --godot-output-dir=./bin

编译成功后你将会在 bin 目录下再看到 GodotSharp 目录, 里面装载着需要的 .NET 程序集文件以及
nuget 包.

额外

打开 godot.sln 后, .h 文件与 .cpp 文件默认是分为两个筛选器来的, 不过我个人相比来说不太喜欢这点, 所以我选择打开 godot.vcxproj.filters, 然后批量替换 Header Files\Source Files\ 为空让它放一起.

此外在我这如果在 vs 中触发生成, 会又重新编译整个项目, 临时的解决方案大概是到 vs 的项目属性中的 NMake 栏中将 "生成命令行" 以及 "全部重新生成命令行" 都更改为 set BUILD_NAME=sap_build && scons p=windows target=editor arch=x86_64, 也就是我们之前使用的指令.

标签:godot,git,mono,编译,源码,stable
From: https://www.cnblogs.com/saplonily/p/18235595

相关文章