// Gradle build config for Godot Engine's Android port. plugins { id 'com.android.application' id 'org.jetbrains.kotlin.android' } dependencies { implementation libraries.kotlinStdLib implementation libraries.androidxFragment implementation project(":lib") implementation "androidx.window:window:1.0.0" } ext { // Build number added as a suffix to the version code, and incremented for each build/upload to // the Google Play store. // This should be reset on each stable release of Godot. editorBuildNumber = 0 // Value by which the Godot version code should be offset by to make room for the build number editorBuildNumberOffset = 100 } def generateVersionCode() { int libraryVersionCode = getGodotLibraryVersionCode() return (libraryVersionCode * editorBuildNumberOffset) + editorBuildNumber } def generateVersionName() { String libraryVersionName = getGodotLibraryVersionName() return libraryVersionName + ".$editorBuildNumber" } android { compileSdkVersion versions.compileSdk buildToolsVersion versions.buildTools ndkVersion versions.ndkVersion defaultConfig { // The 'applicationId' suffix allows to install Godot 3.x(v3) and 4.x(v4) on the same device applicationId "org.godotengine.editor.v4" versionCode generateVersionCode() versionName generateVersionName() minSdkVersion versions.minSdk targetSdkVersion versions.targetSdk missingDimensionStrategy 'products', 'editor' } compileOptions { sourceCompatibility versions.javaVersion targetCompatibility versions.javaVersion } kotlinOptions { jvmTarget = versions.javaVersion } buildTypes { dev { initWith debug applicationIdSuffix ".dev" } debug { initWith release // Need to swap with the release signing config when this is ready for public release. signingConfig signingConfigs.debug } release { // This buildtype is disabled below. // The editor can't be used with target=release only, as debugging tools are then not // included, and it would crash on errors instead of reporting them. } } packagingOptions { // 'doNotStrip' is enabled for development within Android Studio if (shouldNotStrip()) { doNotStrip '**/*.so' } } // Disable 'release' buildtype. // The editor can't be used with target=release only, as debugging tools are then not // included, and it would crash on errors instead of reporting them. variantFilter { variant -> if (variant.buildType.name == "release") { setIgnore(true) } } applicationVariants.all { variant -> variant.outputs.all { output -> def suffix = variant.name == "dev" ? "_dev" : "" output.outputFileName = "android_editor${suffix}.apk" } } }