c090caa58b
The implementation is meant to be extended and updated in order to integrate it with the existing Godot java and native codebase.
60 lines
1.9 KiB
Python
60 lines
1.9 KiB
Python
#!/usr/bin/env python
|
|
|
|
from detect import get_ndk_version
|
|
from distutils.version import LooseVersion
|
|
|
|
Import('env')
|
|
|
|
android_files = [
|
|
'os_android.cpp',
|
|
'file_access_android.cpp',
|
|
'audio_driver_opensl.cpp',
|
|
'file_access_jandroid.cpp',
|
|
'dir_access_jandroid.cpp',
|
|
'thread_jandroid.cpp',
|
|
'net_socket_android.cpp',
|
|
'audio_driver_jandroid.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',
|
|
'vulkan/vk_renderer_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()
|
|
android_objects.append(env_thirdparty.SharedObject('#thirdparty/misc/ifaddrs-android.cc'))
|
|
|
|
lib = env_android.add_shared_library("#bin/libgodot", [android_objects], SHLIBSUFFIX=env["SHLIBSUFFIX"])
|
|
|
|
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'
|
|
else: # release_debug, debug
|
|
lib_type_dir = 'debug'
|
|
|
|
out_dir = '#platform/android/java/lib/libs/' + 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"))
|