| 
									
										
										
										
											2016-10-17 08:50:25 +02:00
										 |  |  | #!/usr/bin/env python | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  | Import("env") | 
					
						
							| 
									
										
										
										
											2014-02-09 22:10:30 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-08-27 11:16:33 +02:00
										 |  |  | android_files = [ | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |     "os_android.cpp", | 
					
						
							|  |  |  |     "file_access_android.cpp", | 
					
						
							|  |  |  |     "audio_driver_opensl.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", | 
					
						
							| 
									
										
										
										
											2020-11-01 03:30:40 +02: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", | 
					
						
							|  |  |  |     "vulkan/vulkan_context_android.cpp", | 
					
						
							| 
									
										
										
										
											2014-02-09 22:10:30 -03:00
										 |  |  | ] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | env_android = env.Clone() | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-30 18:57:40 +01:00
										 |  |  | android_objects = [] | 
					
						
							| 
									
										
										
										
											2014-02-09 22:10:30 -03:00
										 |  |  | for x in android_files: | 
					
						
							| 
									
										
										
										
											2016-10-30 18:57:40 +01:00
										 |  |  |     android_objects.append(env_android.SharedObject(x)) | 
					
						
							| 
									
										
										
										
											2014-02-09 22:10:30 -03: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-09 22:10:30 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-28 16:27:57 -04: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" | 
					
						
							| 
									
										
										
										
											2016-10-30 18:57:40 +01:00
										 |  |  |     else:  # release_debug, debug | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |         lib_type_dir = "debug" | 
					
						
							| 
									
										
										
										
											2016-10-30 18:44:57 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |     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") | 
					
						
							|  |  |  |     ) | 
					
						
							| 
									
										
										
										
											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")) |