SCsub 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #!/usr/bin/env python
  2. Import("env")
  3. android_files = [
  4. "os_android.cpp",
  5. "file_access_android.cpp",
  6. "audio_driver_opensl.cpp",
  7. "file_access_jandroid.cpp",
  8. "dir_access_jandroid.cpp",
  9. "thread_jandroid.cpp",
  10. "net_socket_android.cpp",
  11. "audio_driver_jandroid.cpp",
  12. "java_godot_lib_jni.cpp",
  13. "java_class_wrapper.cpp",
  14. "java_godot_wrapper.cpp",
  15. "java_godot_io_wrapper.cpp",
  16. "jni_utils.cpp",
  17. "android_keys_utils.cpp",
  18. "plugin/godot_plugin_jni.cpp",
  19. #'power_android.cpp'
  20. ]
  21. env_android = env.Clone()
  22. android_objects = []
  23. for x in android_files:
  24. android_objects.append(env_android.SharedObject(x))
  25. env_thirdparty = env_android.Clone()
  26. env_thirdparty.disable_warnings()
  27. android_objects.append(env_thirdparty.SharedObject("#thirdparty/misc/ifaddrs-android.cc"))
  28. lib = env_android.add_shared_library("#bin/libgodot", [android_objects], SHLIBSUFFIX=env["SHLIBSUFFIX"])
  29. lib_arch_dir = ""
  30. if env["android_arch"] == "armv7":
  31. lib_arch_dir = "armeabi-v7a"
  32. elif env["android_arch"] == "arm64v8":
  33. lib_arch_dir = "arm64-v8a"
  34. elif env["android_arch"] == "x86":
  35. lib_arch_dir = "x86"
  36. elif env["android_arch"] == "x86_64":
  37. lib_arch_dir = "x86_64"
  38. else:
  39. print("WARN: Architecture not suitable for embedding into APK; keeping .so at \\bin")
  40. if lib_arch_dir != "":
  41. if env["target"] == "release":
  42. lib_type_dir = "release"
  43. else: # release_debug, debug
  44. lib_type_dir = "debug"
  45. out_dir = "#platform/android/java/lib/libs/" + lib_type_dir + "/" + lib_arch_dir
  46. env_android.Command(
  47. out_dir + "/libgodot_android.so", "#bin/libgodot" + env["SHLIBSUFFIX"], Move("$TARGET", "$SOURCE")
  48. )
  49. stl_lib_path = (
  50. str(env["ANDROID_NDK_ROOT"]) + "/sources/cxx-stl/llvm-libc++/libs/" + lib_arch_dir + "/libc++_shared.so"
  51. )
  52. env_android.Command(out_dir + "/libc++_shared.so", stl_lib_path, Copy("$TARGET", "$SOURCE"))