未指明版本的适配Godot 4.1.3版本。
为Windows平台编译Godot
用Visual Studio编译
- 安装Visual Studio
- 安装Python
- 安装SCons
py -m pip install --upgrade pip scons
- 编译
假设Python安装在目录D:\Python3,Godot代码库在目录D:\prj\godotengine\godot。
如果是在x64平台上编译x64应用程序,那么启动"x64 Native Tools Command Prompt for VS"并执行命令:
set PATH=D:\Python3;D:\Python3\Scripts;%PATH%
cd /d D:\prj\godotengine\godot
scons -h
scons -H
:: scons -c 再带入之前版本所使用的参数执行清理
:: 编译导出模板(及项目管理器和编辑器)
scons p=windows deprecated=no
:: 编译发布版本
scons p=windows target=template_release production=yes deprecated=no
将在目录bin下分别生成可执行文件:
godot.windows.editor.x86_64.console
godot.windows.editor.x86_64.exe
godot.windows.template_release.x86_64.console.exe
godot.windows.template_release.x86_64.exe
用MinGW-w64编译
- 启动MSYS2 MinGW 64-bit shell(D:\msys64\msys2_shell.cmd -mingw64)
- 准备编译环境
pacman -S --needed mingw-w64-x86_64-python-pip mingw-w64-x86_64-gcc make
pip install --upgrade scons
- 编译
cd /d/prj/godotengine/godot
# scons -c 再带入之前版本所使用的参数执行清理
# 编译项目管理器和编辑器
scons p=windows deprecated=no use_mingw=yes
# 编译发布版本
scons p=windows target=template_release production=yes deprecated=no use_mingw=yes
输出的可执行文件名和用Visual Studio编译的相同。
- 例子
一个实际产品的例子(裁剪掉不需要的模块):
scons p=windows target=template_release production=yes deprecated=no use_mingw=yes disable_advanced_gui=yes modules_enabled_by_default=no module_freetype_enabled=yes module_gdscript_enabled=yes module_lightmapper_rd_enabled=yes module_navigation_enabled=yes module_raycast_enabled=yes module_svg_enabled=yes module_text_server_adv_enabled=yes module_webp_enabled=yes minizip=no brotli=no graphite=no openxr=no builtin_brotli=no builtin_certs=no builtin_enet=no builtin_msdfgen=no builtin_glslang=no builtin_graphite=no builtin_libogg=no builtin_libtheora=no builtin_libvorbis=no builtin_wslay=no builtin_mbedtls=no builtin_miniupnpc=no builtin_openxr=no builtin_pcre2=no builtin_pcre2_with_jit=no builtin_squish=no builtin_xatlas=no vulkan=no use_volk=no
以下选项采用缺省值(yes):
builtin_embree
builtin_freetype
builtin_harfbuzz
builtin_icu4c
builtin_libpng
builtin_libwebp
builtin_recastnavigation
builtin_rvo2_2d
builtin_rvo2_3d
builtin_zlib
builtin_zstd
opengl3
- 编译godot-cpp
通常将godot-cpp作为某个GDExtension组件的依赖库子模块(git submodule)进行编译。
假设godot-cpp代码库在目录D:\prj\godotengine\godot-cpp。
以tag godot-4.1.3-stable为例,先应用#1078补丁,然后执行命令:
cd /d/prj/godotengine/godot-cpp
# 编译调试版本
scons gdextension_dir=gdextension arch=x86_64 use_mingw=yes debug_symbols=no
# 编译发布版本
scons target=template_release gdextension_dir=gdextension arch=x86_64 use_mingw=yes debug_symbols=no
将在目录bin下分别生成静态库文件:
libgodot-cpp.windows.template_debug.x86_64.a
libgodot-cpp.windows.template_release.x86_64.a
为Android平台编译Godot
- 安装Python
- 安装SCons
- 安装Android Studio和Android SDK
- 下载Gradle
版本号参考D:\prj\godotengine\godot\platform\android\java\gradle\wrapper\gradle-wrapper.properties中distributionUrl的配置,一般可取同一大版本号下的最新版本。 - 修改distributionUrl,指向已下载的gradle包,例如:
distributionUrl=file:///D:/android/gradle/gradle-7.6.3-all.zip
- 一些软件版本号在D:\prj\godotengine\godot\platform\android\java\app\config.gradle中指定
- 编译
假设Android Studio安装在目录“D:\android\Android Studio”;Android SDK安装在目录D:\android\android-sdk。
在命令提示符窗口执行:
set PATH=D:\Python3;D:\Python3\Scripts;%PATH%
set ANDROID_SDK_ROOT=D:\android\android-sdk
set JAVA_HOME=D:\android\Android Studio\jbr\
cd /d D:\prj\godotengine\godot
:: scons -c 再带入之前版本所使用的参数执行清理(或git clean -fixd)
scons p=android target=template_release production=yes deprecated=no
cd platform\android\java
gradlew generateGodotTemplates
如果首次编译generateGodotTemplates失败,可能是因为依赖包下载失败导致,可以多试几次。
另外,子目录android下多余的垃圾文件也可能导致编译失败,可以用git工具清理后再试。
将在目录bin下生成三个文件:
android_release.apk
android_source.zip
godot-lib.template_release.aar
另,编译调试用模板:
cd /d D:\prj\godotengine\godot\platform\android\java
gradlew cleanGodotTemplates
cd /d D:\prj\godotengine\godot
:: scons -c 再带入之前版本所使用的参数执行清理(或git clean -fixd)
scons p=android target=template_debug deprecated=no
cd platform\android\java
gradlew generateGodotTemplates
将在目录bin下生成三个文件:
android_debug.apk
android_source.zip
godot-lib.template_debug.aar
编译目标可参考文件D:\prj\godotengine\godot\platform\android\java\build.gradle。