diff --git a/platform/android/SCsub b/platform/android/SCsub index 2260a84a760..c859373eaa0 100644 --- a/platform/android/SCsub +++ b/platform/android/SCsub @@ -1,6 +1,7 @@ #!/usr/bin/env python from misc.utility.scons_hints import * +import platform import subprocess import sys @@ -50,18 +51,34 @@ lib = env_android.add_shared_library("#bin/libgodot", [android_objects], SHLIBSU env.Depends(lib, thirdparty_obj) lib_arch_dir = "" +triple_target_dir = "" if env["arch"] == "arm32": lib_arch_dir = "armeabi-v7a" + triple_target_dir = "arm-linux-androideabi" elif env["arch"] == "arm64": lib_arch_dir = "arm64-v8a" + triple_target_dir = "aarch64-linux-android" elif env["arch"] == "x86_32": lib_arch_dir = "x86" + triple_target_dir = "i686-linux-android" elif env["arch"] == "x86_64": lib_arch_dir = "x86_64" + triple_target_dir = "x86_64-linux-android" else: print_warning("Architecture not suitable for embedding into APK; keeping .so at \\bin") -if lib_arch_dir != "": +host_subpath = "" +if sys.platform.startswith("linux"): + host_subpath = "linux-x86_64" +elif sys.platform.startswith("darwin"): + host_subpath = "darwin-x86_64" +elif sys.platform.startswith("win"): + if platform.machine().endswith("64"): + host_subpath = "windows-x86_64" + else: + host_subpath = "windows" + +if lib_arch_dir != "" and host_subpath != "": if env.dev_build: lib_type_dir = "dev" elif env.debug_features: @@ -82,9 +99,7 @@ if lib_arch_dir != "": 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" - ) + stl_lib_path = f"{env['ANDROID_NDK_ROOT']}/toolchains/llvm/prebuilt/{host_subpath}/sysroot/usr/lib/{triple_target_dir}/libc++_shared.so" env_android.Command(out_dir + "/libc++_shared.so", stl_lib_path, Copy("$TARGET", "$SOURCE")) def generate_apk(target, source, env): @@ -99,10 +114,11 @@ if lib_arch_dir != "": else: gradle_process = ["./gradlew"] - gradle_process += [ - "generateGodotEditor" if env["target"] == "editor" else "generateGodotTemplates", - "--quiet", - ] + if env["target"] == "editor": + gradle_process += ["generateGodotEditor", "generateGodotHorizonOSEditor", "generateGodotPicoOSEditor"] + else: + gradle_process += ["generateGodotTemplates"] + gradle_process += ["--quiet"] if env["debug_symbols"]: gradle_process += ["-PdoNotStrip=true"] diff --git a/platform/android/detect.py b/platform/android/detect.py index cac7c3f48d4..6ddc9179936 100644 --- a/platform/android/detect.py +++ b/platform/android/detect.py @@ -64,7 +64,7 @@ def get_android_ndk_root(env: "SConsEnvironment"): # This is kept in sync with the value in 'platform/android/java/app/config.gradle'. def get_ndk_version(): - return "23.2.8568313" + return "27.2.12479018" # This is kept in sync with the value in 'platform/android/java/app/config.gradle'. diff --git a/platform/android/java/app/config.gradle b/platform/android/java/app/config.gradle index db5a5e0b8df..197d5f82c4f 100644 --- a/platform/android/java/app/config.gradle +++ b/platform/android/java/app/config.gradle @@ -11,7 +11,7 @@ ext.versions = [ nexusPublishVersion: '1.3.0', javaVersion : JavaVersion.VERSION_17, // Also update 'platform/android/detect.py#get_ndk_version()' when this is updated. - ndkVersion : '23.2.8568313', + ndkVersion : '27.2.12479018', splashscreenVersion: '1.0.1', openxrVendorsVersion: '4.0.0-stable' diff --git a/platform/android/java/scripts/publish-module.gradle b/platform/android/java/scripts/publish-module.gradle index 32b749e493d..c2c905a6e40 100644 --- a/platform/android/java/scripts/publish-module.gradle +++ b/platform/android/java/scripts/publish-module.gradle @@ -43,7 +43,11 @@ afterEvaluate { name = 'Rémi Verschelde' email = 'rverschelde@gmail.com' } - // Add all other devs here... + developer { + id = 'godotengine' + name = 'Godot Engine contributors' + email = 'contact@godotengine.org' + } } // Version control info - if you're using GitHub, follow the