2
0

SCsub 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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(out_dir + '/libgodot_android.so', '#bin/libgodot' + env['SHLIBSUFFIX'], Move("$TARGET", "$SOURCE"))
  47. stl_lib_path = str(env['ANDROID_NDK_ROOT']) + '/sources/cxx-stl/llvm-libc++/libs/' + lib_arch_dir + '/libc++_shared.so'
  48. env_android.Command(out_dir + '/libc++_shared.so', stl_lib_path, Copy("$TARGET", "$SOURCE"))