12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- #!/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",
- "thread_jandroid.cpp",
- "net_socket_android.cpp",
- "java_godot_lib_jni.cpp",
- "java_class_wrapper.cpp",
- "java_godot_wrapper.cpp",
- "java_godot_io_wrapper.cpp",
- "jni_utils.cpp",
- "android_keys_utils.cpp",
- "plugin/godot_plugin_jni.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["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"
- else:
- print("WARN: Architecture not suitable for embedding into APK; keeping .so at \\bin")
- if lib_arch_dir != "":
- if env["target"] == "release":
- lib_type_dir = "release"
- elif env["target"] == "release_debug":
- lib_type_dir = "debug"
- else: # debug
- lib_type_dir = "dev"
- 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
- 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"))
|