diff options
Diffstat (limited to 'platform/android/java/app')
| -rw-r--r-- | platform/android/java/app/build.gradle | 34 | ||||
| -rw-r--r-- | platform/android/java/app/config.gradle | 52 | 
2 files changed, 79 insertions, 7 deletions
| diff --git a/platform/android/java/app/build.gradle b/platform/android/java/app/build.gradle index 5d1a9d7b99..b6303d1bc9 100644 --- a/platform/android/java/app/build.gradle +++ b/platform/android/java/app/build.gradle @@ -33,6 +33,11 @@ allprojects {      }  } +configurations { +    // Initializes a placeholder for the devImplementation dependency configuration. +    devImplementation {} +} +  dependencies {      implementation libraries.kotlinStdLib      implementation libraries.androidxFragment @@ -45,6 +50,7 @@ dependencies {          // Custom build mode. In this scenario this project is the only one around and the Godot          // library is available through the pre-generated godot-lib.*.aar android archive files.          debugImplementation fileTree(dir: 'libs/debug', include: ['*.jar', '*.aar']) +        devImplementation fileTree(dir: 'libs/dev', include: ['*.jar', '*.aar'])          releaseImplementation fileTree(dir: 'libs/release', include: ['*.jar', '*.aar'])      } @@ -66,6 +72,7 @@ dependencies {  android {      compileSdkVersion versions.compileSdk      buildToolsVersion versions.buildTools +    ndkVersion versions.ndkVersion      compileOptions {          sourceCompatibility versions.javaVersion @@ -93,6 +100,8 @@ android {          versionName getExportVersionName()          minSdkVersion getExportMinSdkVersion()          targetSdkVersion getExportTargetSdkVersion() + +        missingDimensionStrategy 'products', 'template'      }      lintOptions { @@ -146,6 +155,18 @@ android {              }          } +        dev { +            initWith debug +            // Signing and zip-aligning are skipped for prebuilt builds, but +            // performed for custom builds. +            zipAlignEnabled shouldZipAlign() +            if (shouldSign()) { +                signingConfig signingConfigs.debug +            } else { +                signingConfig null +            } +        } +          release {              // Signing and zip-aligning are skipped for prebuilt builds, but              // performed for custom builds. @@ -167,6 +188,7 @@ android {              assets.srcDirs = ['assets']          }          debug.jniLibs.srcDirs = ['libs/debug', 'libs/debug/vulkan_validation_layers'] +        dev.jniLibs.srcDirs = ['libs/dev']          release.jniLibs.srcDirs = ['libs/release']      } @@ -183,6 +205,12 @@ task copyAndRenameDebugApk(type: Copy) {      rename "android_debug.apk", getExportFilename()  } +task copyAndRenameDevApk(type: Copy) { +    from "$buildDir/outputs/apk/dev/android_dev.apk" +    into getExportPath() +    rename "android_dev.apk", getExportFilename() +} +  task copyAndRenameReleaseApk(type: Copy) {      from "$buildDir/outputs/apk/release/android_release.apk"      into getExportPath() @@ -195,6 +223,12 @@ task copyAndRenameDebugAab(type: Copy) {      rename "build-debug.aab", getExportFilename()  } +task copyAndRenameDevAab(type: Copy) { +    from "$buildDir/outputs/bundle/dev/build-dev.aab" +    into getExportPath() +    rename "build-dev.aab", getExportFilename() +} +  task copyAndRenameReleaseAab(type: Copy) {      from "$buildDir/outputs/bundle/release/build-release.aab"      into getExportPath() diff --git a/platform/android/java/app/config.gradle b/platform/android/java/app/config.gradle index c238d1b361..1b2976e715 100644 --- a/platform/android/java/app/config.gradle +++ b/platform/android/java/app/config.gradle @@ -76,7 +76,7 @@ ext.getGodotEditorVersion = { ->      String editorVersion = project.hasProperty("godot_editor_version") ? project.property("godot_editor_version") : ""      if (editorVersion == null || editorVersion.isEmpty()) {          // Try the library version first -        editorVersion = getGodotLibraryVersion() +        editorVersion = getGodotLibraryVersionName()          if (editorVersion.isEmpty()) {              // Fallback value. @@ -86,9 +86,24 @@ ext.getGodotEditorVersion = { ->      return editorVersion  } +ext.getGodotLibraryVersionCode = { -> +    String versionName = "" +    int versionCode = 1 +    (versionName, versionCode) = getGodotLibraryVersion() +    return versionCode +} + +ext.getGodotLibraryVersionName = { -> +    String versionName = "" +    int versionCode = 1 +    (versionName, versionCode) = getGodotLibraryVersion() +    return versionName +} +  ext.generateGodotLibraryVersion = { List<String> requiredKeys ->      // Attempt to read the version from the `version.py` file. -    String libraryVersion = "" +    String libraryVersionName = "" +    int libraryVersionCode = 0      File versionFile = new File("../../../version.py")      if (versionFile.isFile()) { @@ -109,15 +124,35 @@ ext.generateGodotLibraryVersion = { List<String> requiredKeys ->          }          if (requiredKeys.empty) { -            libraryVersion = map.values().join(".") +            libraryVersionName = map.values().join(".") +            try { +                if (map.containsKey("patch")) { +                    libraryVersionCode = Integer.parseInt(map["patch"]) +                } + +                if (map.containsKey("minor")) { +                    libraryVersionCode += (Integer.parseInt(map["minor"]) * 100) +                } + +                if (map.containsKey("major")) { +                    libraryVersionCode += (Integer.parseInt(map["major"]) * 10000) +                } +            } catch (NumberFormatException ignore) { +                libraryVersionCode = 1 +            }          }      } -    if (libraryVersion.isEmpty()) { +    if (libraryVersionName.isEmpty()) {          // Fallback value in case we're unable to read the file. -        libraryVersion = "custom_build" +        libraryVersionName = "custom_build" +    } + +    if (libraryVersionCode == 0) { +        libraryVersionCode = 1      } -    return libraryVersion + +    return [libraryVersionName, libraryVersionCode]  }  ext.getGodotLibraryVersion = { -> @@ -127,7 +162,10 @@ ext.getGodotLibraryVersion = { ->  ext.getGodotPublishVersion = { ->      List<String> requiredKeys = ["major", "minor", "patch", "status"] -    return generateGodotLibraryVersion(requiredKeys) +    String versionName = "" +    int versionCode = 1 +    (versionName, versionCode) = generateGodotLibraryVersion(requiredKeys) +    return versionName  }  final String VALUE_SEPARATOR_REGEX = "\\|" |