2016-10-17 08:50:25 +02:00
|
|
|
#!/usr/bin/env python
|
|
|
|
|
2020-03-30 08:28:32 +02:00
|
|
|
Import("env")
|
2014-02-10 02:10:30 +01:00
|
|
|
|
2019-08-27 11:16:33 +02:00
|
|
|
android_files = [
|
2020-03-30 08:28:32 +02:00
|
|
|
"os_android.cpp",
|
2021-08-04 21:22:11 +02:00
|
|
|
"android_input_handler.cpp",
|
2020-03-30 08:28:32 +02:00
|
|
|
"file_access_android.cpp",
|
2021-07-11 03:39:31 +02:00
|
|
|
"file_access_filesystem_jandroid.cpp",
|
2020-03-30 08:28:32 +02:00
|
|
|
"audio_driver_opensl.cpp",
|
|
|
|
"dir_access_jandroid.cpp",
|
2021-11-04 13:33:37 +01:00
|
|
|
"tts_android.cpp",
|
2020-03-30 08:28:32 +02:00
|
|
|
"thread_jandroid.cpp",
|
|
|
|
"net_socket_android.cpp",
|
|
|
|
"java_godot_lib_jni.cpp",
|
|
|
|
"java_class_wrapper.cpp",
|
|
|
|
"java_godot_wrapper.cpp",
|
2020-11-01 02:30:40 +01:00
|
|
|
"java_godot_view_wrapper.cpp",
|
2020-03-30 08:28:32 +02:00
|
|
|
"java_godot_io_wrapper.cpp",
|
|
|
|
"jni_utils.cpp",
|
|
|
|
"android_keys_utils.cpp",
|
2020-03-27 17:30:18 +01:00
|
|
|
"display_server_android.cpp",
|
2022-01-26 22:50:58 +01:00
|
|
|
"plugin/godot_plugin_jni.cpp",
|
2020-03-27 17:30:18 +01:00
|
|
|
"vulkan/vulkan_context_android.cpp",
|
2014-02-10 02:10:30 +01:00
|
|
|
]
|
|
|
|
|
|
|
|
env_android = env.Clone()
|
|
|
|
|
2016-10-30 18:57:40 +01:00
|
|
|
android_objects = []
|
2014-02-10 02:10:30 +01:00
|
|
|
for x in android_files:
|
2016-10-30 18:57:40 +01:00
|
|
|
android_objects.append(env_android.SharedObject(x))
|
2014-02-10 02:10:30 +01:00
|
|
|
|
2018-10-03 15:14:54 +02:00
|
|
|
env_thirdparty = env_android.Clone()
|
|
|
|
env_thirdparty.disable_warnings()
|
2020-12-17 16:01:36 +01:00
|
|
|
thirdparty_obj = env_thirdparty.SharedObject("#thirdparty/misc/ifaddrs-android.cc")
|
|
|
|
android_objects.append(thirdparty_obj)
|
2014-02-10 02:10:30 +01:00
|
|
|
|
2017-11-28 21:27:57 +01:00
|
|
|
lib = env_android.add_shared_library("#bin/libgodot", [android_objects], SHLIBSUFFIX=env["SHLIBSUFFIX"])
|
2016-06-15 15:21:18 +02:00
|
|
|
|
2020-12-17 16:01:36 +01:00
|
|
|
# Needed to force rebuilding the platform files when the thirdparty code is updated.
|
|
|
|
env.Depends(lib, thirdparty_obj)
|
|
|
|
|
2020-03-30 08:28:32 +02:00
|
|
|
lib_arch_dir = ""
|
|
|
|
if env["android_arch"] == "armv7":
|
|
|
|
lib_arch_dir = "armeabi-v7a"
|
|
|
|
elif env["android_arch"] == "arm64v8":
|
|
|
|
lib_arch_dir = "arm64-v8a"
|
|
|
|
elif env["android_arch"] == "x86":
|
|
|
|
lib_arch_dir = "x86"
|
|
|
|
elif env["android_arch"] == "x86_64":
|
|
|
|
lib_arch_dir = "x86_64"
|
2016-06-15 15:21:18 +02:00
|
|
|
else:
|
2020-03-30 08:28:32 +02:00
|
|
|
print("WARN: Architecture not suitable for embedding into APK; keeping .so at \\bin")
|
2016-06-15 15:21:18 +02:00
|
|
|
|
2020-03-30 08:28:32 +02:00
|
|
|
if lib_arch_dir != "":
|
|
|
|
if env["target"] == "release":
|
|
|
|
lib_type_dir = "release"
|
2021-06-25 15:45:16 +02:00
|
|
|
elif env["target"] == "release_debug":
|
2020-03-30 08:28:32 +02:00
|
|
|
lib_type_dir = "debug"
|
2021-06-25 15:45:16 +02:00
|
|
|
else: # debug
|
|
|
|
lib_type_dir = "dev"
|
2016-10-30 18:44:57 +01:00
|
|
|
|
2021-06-25 15:45:16 +02:00
|
|
|
if env["tools"]:
|
|
|
|
lib_tools_dir = "tools/"
|
|
|
|
else:
|
|
|
|
lib_tools_dir = ""
|
|
|
|
|
|
|
|
out_dir = "#platform/android/java/lib/libs/" + lib_tools_dir + lib_type_dir + "/" + lib_arch_dir
|
2020-03-30 08:28:32 +02:00
|
|
|
env_android.Command(
|
|
|
|
out_dir + "/libgodot_android.so", "#bin/libgodot" + env["SHLIBSUFFIX"], Move("$TARGET", "$SOURCE")
|
|
|
|
)
|
2019-07-30 15:49:31 +02:00
|
|
|
|
2020-03-30 08:28:32 +02:00
|
|
|
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"))
|