diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2024-02-17 00:26:42 +0100 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2024-02-17 00:26:42 +0100 |
commit | 01323cd6872a71f073125dbebdf5d491bbbf71e7 (patch) | |
tree | 55e6cd6012ec2054cda045bcd4c9464fae88a1ad /platform/android/java | |
parent | 07095d2b19a26190fbc49a265b0b2e3a66cd823c (diff) | |
parent | a69a585c91f70e4e3443073483d256e868f57156 (diff) | |
download | redot-engine-01323cd6872a71f073125dbebdf5d491bbbf71e7.tar.gz |
Merge pull request #88385 from m4gr3d/enable_legacy_packaging_main
Add export setting to specify whether the native libraries should be compressed for the gradle build
Diffstat (limited to 'platform/android/java')
-rw-r--r-- | platform/android/java/app/build.gradle | 8 | ||||
-rw-r--r-- | platform/android/java/app/config.gradle | 23 |
2 files changed, 31 insertions, 0 deletions
diff --git a/platform/android/java/app/build.gradle b/platform/android/java/app/build.gradle index f084c60209..7797f4bc9d 100644 --- a/platform/android/java/app/build.gradle +++ b/platform/android/java/app/build.gradle @@ -116,6 +116,14 @@ android { if (shouldNotStrip()) { doNotStrip '**/*.so' } + + jniLibs { + // Setting this to true causes AGP to package compressed native libraries when building the app + // For more background, see: + // - https://developer.android.com/build/releases/past-releases/agp-3-6-0-release-notes#extractNativeLibs + // - https://stackoverflow.com/a/44704840 + useLegacyPackaging shouldUseLegacyPackaging() + } } signingConfigs { diff --git a/platform/android/java/app/config.gradle b/platform/android/java/app/config.gradle index 7224765f28..f2c4a5d1b6 100644 --- a/platform/android/java/app/config.gradle +++ b/platform/android/java/app/config.gradle @@ -361,3 +361,26 @@ ext.shouldSign = { -> ext.shouldNotStrip = { -> return isAndroidStudio() || project.hasProperty("doNotStrip") } + +/** + * Whether to use the legacy convention of compressing all .so files in the APK. + * + * For more background, see: + * - https://developer.android.com/build/releases/past-releases/agp-3-6-0-release-notes#extractNativeLibs + * - https://stackoverflow.com/a/44704840 + */ +ext.shouldUseLegacyPackaging = { -> + int minSdk = getExportMinSdkVersion() + if (minSdk < 23) { + // Enforce the default behavior for compatibility with device running api < 23 + return true + } + + String legacyPackagingFlag = project.hasProperty("compress_native_libraries") ? project.property("compress_native_libraries") : "" + if (legacyPackagingFlag != null && !legacyPackagingFlag.isEmpty()) { + return Boolean.parseBoolean(legacyPackagingFlag) + } + + // Default behavior for minSdk >= 23 + return false +} |