为Windows和Android平台编译Godot

为Windows平台编译Godot

注:以下未明确指明适用版本的都是针对Godot 3.5分支。

用Visual Studio编译

py -m pip install --upgrade pip scons
py -m pip install --upgrade pywin32
  • 编译
    假设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 再带入之前版本所使用的参数执行清理
:: WARNING: MSVC LTO doesn't work reliably for Godot.
::		Set `debug_symbols=no use_lto=no` instead of the `production=yes` option.
::		MinGW w/ GCC/Clang is better for production.
:: 编译发布版本
scons p=windows tools=no target=release use_lto=no deprecated=no vsproj=no debug_symbols=no
:: 编译导出模板(及项目管理器和编辑器)
scons p=windows tools=yes target=release_debug use_lto=no deprecated=no vsproj=yes debug_symbols=no

将在目录bin下分别生成可执行文件:

godot.windows.opt.64.exe
godot.windows.opt.tools.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 tools=no target=release production=yes use_lto=yes deprecated=no debug_symbols=no use_mingw=yes
strip bin/godot.windows.opt.64.exe
# 编译项目管理器和编辑器
scons p=windows tools=yes target=release_debug use_lto=yes deprecated=no debug_symbols=no use_mingw=yes

输出的可执行文件名和用Visual Studio编译的相同。

  • 例子
    一个实际产品的例子(裁剪掉不需要的模块):
scons p=windows tools=no target=release production=yes use_lto=yes deprecated=no debug_symbols=no use_mingw=yes minizip=no disable_advanced_gui=yes module_bmp_enabled=no module_bullet_enabled=no module_camera_enabled=no module_csg_enabled=no module_cvtt_enabled=no module_dds_enabled=no module_denoise_enabled=no module_enet_enabled=no module_etc_enabled=no module_fbx_enabled=no module_gltf_enabled=no module_gridmap_enabled=no module_hdr_enabled=no module_jpg_enabled=no module_jsonrpc_enabled=no module_lightmapper_cpu_enabled=no module_mbedtls_enabled=no module_minimp3_enabled=no module_mobile_vr_enabled=no module_mono_enabled=no module_ogg_enabled=no module_opensimplex_enabled=no module_opus_enabled=no module_pvr_enabled=no module_raycast_enabled=no module_regex_enabled=no module_squish_enabled=no module_stb_vorbis_enabled=no module_svg_enabled=no module_tga_enabled=no module_theora_enabled=no module_tinyexr_enabled=no module_upnp_enabled=no module_vhacd_enabled=no module_visual_script_enabled=no module_vorbis_enabled=no module_webm_enabled=no module_webrtc_enabled=no module_websocket_enabled=no module_webxr_enabled=no module_xatlas_unwrap_enabled=no builtin_bullet=no builtin_certs=no builtin_embree=no builtin_enet=no builtin_libogg=no builtin_libtheora=no builtin_libvorbis=no builtin_libvpx=no builtin_wslay=no builtin_mbedtls=no builtin_miniupnpc=no builtin_opus=no builtin_pcre2=no builtin_pcre2_with_jit=no builtin_squish=no builtin_xatlas=no

以下模块参数取缺省值(=yes):

module_freetype_enabled
module_gdnative_enabled
module_gdscript_enabled
module_navigation_enabled
module_webp_enabled
builtin_freetype
builtin_libpng
builtin_libwebp
builtin_recast
builtin_rvo2
builtin_zlib
builtin_zstd
cd /d/prj/godotengine/godot
# 编译编辑器
scons arch=x86_64 lto=auto deprecated=no use_mingw=yes
# 编译发布版本
scons target=template_release arch=x86_64 lto=auto production=yes deprecated=no use_mingw=yes
strip bin/godot.windows.template_release.x86_64.exe

将在目录bin下分别生成可执行文件:

godot.windows.editor.x86_64.exe
godot.windows.editor.x86_64.console.exe
godot.windows.template_release.x86_64.exe
godot.windows.template_release.x86_64.console.exe
  • 编译godot-cpp(4.0分支)
    假设godot-cpp代码库在目录D:\prj\godotengine\godot-cpp。
    对于4.0分支4.0.1-stable版本,需应用#1078补丁
    然后执行命令:
cd /d/prj/godotengine/godot-cpp
# 编译开发版本
scons target=editor gdextension_dir=gdextension custom_api_file=gdextension/extension_api.json use_mingw=yes arch=x86_64 debug_symbols=no
# 编译发布版本
scons target=template_release gdextension_dir=gdextension custom_api_file=gdextension/extension_api.json use_mingw=yes arch=x86_64 debug_symbols=no

将在目录bin下分别生成静态库文件:

libgodot-cpp.windows.editor.x86_64.a
libgodot-cpp.windows.template_release.x86_64.a

为Android平台编译Godot

  • 安装Python
  • 安装SCons
  • 安装Android Studio
  • 下载Gradle
  • 修改distributionUrl
    修改D:\prj\godotengine\godot\platform\android\java\gradle\wrapper\gradle-wrapper.properties,将distributionUrl指向已下载的gradle包,例如:
distributionUrl=file:///D:/android/gradle/gradle-8.0.2-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 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 tools=no target=release production=yes use_lto=yes deprecated=no debug_symbols=no android_arch=arm64v8
cd platform\android\java
gradlew generateGodotTemplates

如果首次编译generateGodotTemplates失败(提示“BUILD FAILED”),可能是因为下载依赖包失败导致,可以多试几次。
将在目录D:\prj\godotengine\godot\bin下生成三个文件:

android_release.apk
android_source.zip
godot-lib.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 tools=no target=release_debug use_lto=yes deprecated=no debug_symbols=no android_arch=arm64v8
cd platform\android\java
gradlew generateGodotTemplates

将在目录D:\prj\godotengine\godot\bin下生成三个文件:

android_debug.apk
android_source.zip
godot-lib.debug.aar

编译目标可参考D:\prj\godotengine\godot\platform\android\java\build.gradle文件。

猜你喜欢

转载自blog.csdn.net/feiyunw/article/details/121861944