mirror of
https://github.com/Redot-Engine/redot-engine.git
synced 2025-12-06 15:21:56 -05:00
Configure the gradle builds to sign and build the release version of the Godot Android Editor
(cherry picked from commit 0d569bea5d)
80 lines
2.4 KiB
Python
80 lines
2.4 KiB
Python
#!/usr/bin/env python
|
|
|
|
Import("env")
|
|
|
|
android_files = [
|
|
"os_android.cpp",
|
|
"android_input_handler.cpp",
|
|
"file_access_android.cpp",
|
|
"file_access_filesystem_jandroid.cpp",
|
|
"audio_driver_opensl.cpp",
|
|
"dir_access_jandroid.cpp",
|
|
"tts_android.cpp",
|
|
"thread_jandroid.cpp",
|
|
"net_socket_android.cpp",
|
|
"java_godot_lib_jni.cpp",
|
|
"java_class_wrapper.cpp",
|
|
"java_godot_wrapper.cpp",
|
|
"java_godot_view_wrapper.cpp",
|
|
"java_godot_io_wrapper.cpp",
|
|
"jni_utils.cpp",
|
|
"android_keys_utils.cpp",
|
|
"display_server_android.cpp",
|
|
"plugin/godot_plugin_jni.cpp",
|
|
"vulkan/vulkan_context_android.cpp",
|
|
]
|
|
|
|
env_android = env.Clone()
|
|
|
|
android_objects = []
|
|
for x in android_files:
|
|
android_objects.append(env_android.SharedObject(x))
|
|
|
|
env_thirdparty = env_android.Clone()
|
|
env_thirdparty.disable_warnings()
|
|
thirdparty_obj = env_thirdparty.SharedObject("#thirdparty/misc/ifaddrs-android.cc")
|
|
android_objects.append(thirdparty_obj)
|
|
|
|
lib = env_android.add_shared_library("#bin/libgodot", [android_objects], SHLIBSUFFIX=env["SHLIBSUFFIX"])
|
|
|
|
# Needed to force rebuilding the platform files when the thirdparty code is updated.
|
|
env.Depends(lib, thirdparty_obj)
|
|
|
|
lib_arch_dir = ""
|
|
if env["arch"] == "arm32":
|
|
lib_arch_dir = "armeabi-v7a"
|
|
elif env["arch"] == "arm64":
|
|
lib_arch_dir = "arm64-v8a"
|
|
elif env["arch"] == "x86_32":
|
|
lib_arch_dir = "x86"
|
|
elif env["arch"] == "x86_64":
|
|
lib_arch_dir = "x86_64"
|
|
else:
|
|
print("WARN: Architecture not suitable for embedding into APK; keeping .so at \\bin")
|
|
|
|
if lib_arch_dir != "":
|
|
if env.dev_build:
|
|
lib_type_dir = "dev"
|
|
elif env.debug_features:
|
|
if env.editor_build and env["store_release"]:
|
|
lib_type_dir = "release"
|
|
else:
|
|
lib_type_dir = "debug"
|
|
else: # Release
|
|
lib_type_dir = "release"
|
|
|
|
if env.editor_build:
|
|
lib_tools_dir = "tools/"
|
|
else:
|
|
lib_tools_dir = ""
|
|
|
|
out_dir = "#platform/android/java/lib/libs/" + lib_tools_dir + lib_type_dir + "/" + lib_arch_dir
|
|
env_android.Command(
|
|
out_dir + "/libgodot_android.so", "#bin/libgodot" + env["SHLIBSUFFIX"], Move("$TARGET", "$SOURCE")
|
|
)
|
|
|
|
stl_lib_path = (
|
|
str(env["ANDROID_NDK_ROOT"]) + "/sources/cxx-stl/llvm-libc++/libs/" + lib_arch_dir + "/libc++_shared.so"
|
|
)
|
|
env_android.Command(out_dir + "/libc++_shared.so", stl_lib_path, Copy("$TARGET", "$SOURCE"))
|