| 
									
										
										
										
											2019-09-02 17:31:51 -07:00
										 |  |  | // Gradle build config for Godot Engine's Android port.
 | 
					
						
							|  |  |  | apply from: 'config.gradle' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | buildscript { | 
					
						
							|  |  |  |     apply from: 'config.gradle' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     repositories { | 
					
						
							|  |  |  |         google() | 
					
						
							| 
									
										
										
										
											2021-06-23 23:49:18 -07:00
										 |  |  |         mavenCentral() | 
					
						
							| 
									
										
										
										
											2019-09-02 17:31:51 -07:00
										 |  |  |     } | 
					
						
							|  |  |  |     dependencies { | 
					
						
							|  |  |  |         classpath libraries.androidGradlePlugin | 
					
						
							| 
									
										
										
										
											2020-02-25 11:18:36 -05:00
										 |  |  |         classpath libraries.kotlinGradlePlugin | 
					
						
							| 
									
										
										
										
											2019-09-02 17:31:51 -07:00
										 |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | apply plugin: 'com.android.application' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | allprojects { | 
					
						
							|  |  |  |     repositories { | 
					
						
							|  |  |  |         google() | 
					
						
							| 
									
										
										
										
											2021-06-23 23:49:18 -07:00
										 |  |  |         mavenCentral() | 
					
						
							| 
									
										
										
										
											2020-04-24 00:45:14 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |         // Godot user plugins custom maven repos
 | 
					
						
							|  |  |  |         String[] mavenRepos = getGodotPluginsMavenRepos() | 
					
						
							|  |  |  |         if (mavenRepos != null && mavenRepos.size() > 0) { | 
					
						
							|  |  |  |             for (String repoUrl : mavenRepos) { | 
					
						
							|  |  |  |                 maven { | 
					
						
							|  |  |  |                     url repoUrl | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2019-09-02 17:31:51 -07:00
										 |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | dependencies { | 
					
						
							| 
									
										
										
										
											2020-02-25 11:18:36 -05:00
										 |  |  |     implementation libraries.kotlinStdLib | 
					
						
							| 
									
										
										
										
											2021-08-31 11:02:59 +01:00
										 |  |  |     implementation libraries.androidxFragment | 
					
						
							| 
									
										
										
										
											2020-01-27 09:56:27 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-09-02 17:31:51 -07:00
										 |  |  |     if (rootProject.findProject(":lib")) { | 
					
						
							|  |  |  |         implementation project(":lib") | 
					
						
							| 
									
										
										
										
											2019-10-18 09:59:04 -07:00
										 |  |  |     } else if (rootProject.findProject(":godot:lib")) { | 
					
						
							|  |  |  |         implementation project(":godot:lib") | 
					
						
							| 
									
										
										
										
											2019-09-02 17:31:51 -07:00
										 |  |  |     } else { | 
					
						
							|  |  |  |         // 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']) | 
					
						
							|  |  |  |         releaseImplementation fileTree(dir: 'libs/release', include: ['*.jar', '*.aar']) | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2019-10-18 09:59:04 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-04-24 00:45:14 -07:00
										 |  |  |     // Godot user plugins remote dependencies
 | 
					
						
							|  |  |  |     String[] remoteDeps = getGodotPluginsRemoteBinaries() | 
					
						
							|  |  |  |     if (remoteDeps != null && remoteDeps.size() > 0) { | 
					
						
							|  |  |  |         for (String dep : remoteDeps) { | 
					
						
							|  |  |  |             implementation dep | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2019-10-18 09:59:04 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-04-24 00:45:14 -07:00
										 |  |  |     // Godot user plugins local dependencies
 | 
					
						
							|  |  |  |     String[] pluginsBinaries = getGodotPluginsLocalBinaries() | 
					
						
							|  |  |  |     if (pluginsBinaries != null && pluginsBinaries.size() > 0) { | 
					
						
							|  |  |  |         implementation files(pluginsBinaries) | 
					
						
							| 
									
										
										
										
											2019-10-18 09:59:04 -07:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2019-09-02 17:31:51 -07:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | android { | 
					
						
							|  |  |  |     compileSdkVersion versions.compileSdk | 
					
						
							|  |  |  |     buildToolsVersion versions.buildTools | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-23 09:41:16 -07:00
										 |  |  |     compileOptions { | 
					
						
							| 
									
										
										
										
											2020-10-28 16:32:45 -07:00
										 |  |  |         sourceCompatibility versions.javaVersion | 
					
						
							|  |  |  |         targetCompatibility versions.javaVersion | 
					
						
							| 
									
										
										
										
											2020-03-23 09:41:16 -07:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-09-09 19:55:42 -07:00
										 |  |  |     assetPacks = [":assetPacks:installTime"] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-09-02 17:31:51 -07:00
										 |  |  |     defaultConfig { | 
					
						
							| 
									
										
										
										
											2020-05-25 12:03:35 -07:00
										 |  |  |         // The default ignore pattern for the 'assets' directory includes hidden files and directories which are used by Godot projects.
 | 
					
						
							|  |  |  |         aaptOptions { | 
					
						
							| 
									
										
										
										
											2021-03-10 00:14:57 -08:00
										 |  |  |             ignoreAssetsPattern "!.svn:!.git:!.gitignore:!.ds_store:!*.scc:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~" | 
					
						
							| 
									
										
										
										
											2020-05-25 12:03:35 -07:00
										 |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-31 16:48:08 -04:00
										 |  |  |         ndk { | 
					
						
							|  |  |  |             String[] export_abi_list = getExportEnabledABIs() | 
					
						
							|  |  |  |             abiFilters export_abi_list | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-02-24 03:49:00 -08:00
										 |  |  |         manifestPlaceholders = [godotEditorVersion: getGodotEditorVersion()] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-09-02 17:31:51 -07:00
										 |  |  |         // Feel free to modify the application id to your own.
 | 
					
						
							| 
									
										
										
										
											2019-12-12 19:52:57 -05:00
										 |  |  |         applicationId getExportPackageName() | 
					
						
							| 
									
										
										
										
											2020-07-23 12:16:03 -04:00
										 |  |  |         versionCode getExportVersionCode() | 
					
						
							|  |  |  |         versionName getExportVersionName() | 
					
						
							| 
									
										
										
										
											2021-12-07 14:38:33 -08:00
										 |  |  |         minSdkVersion getExportMinSdkVersion() | 
					
						
							|  |  |  |         targetSdkVersion getExportTargetSdkVersion() | 
					
						
							| 
									
										
										
										
											2019-09-02 17:31:51 -07:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     lintOptions { | 
					
						
							|  |  |  |         abortOnError false | 
					
						
							|  |  |  |         disable 'MissingTranslation', 'UnusedResources' | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-05 13:40:42 -08:00
										 |  |  |     ndkVersion versions.ndkVersion | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-09-02 17:31:51 -07:00
										 |  |  |     packagingOptions { | 
					
						
							|  |  |  |         exclude 'META-INF/LICENSE' | 
					
						
							|  |  |  |         exclude 'META-INF/NOTICE' | 
					
						
							| 
									
										
										
										
											2020-04-23 00:21:39 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-10 00:14:57 -08:00
										 |  |  |         // 'doNotStrip' is enabled for development within Android Studio
 | 
					
						
							|  |  |  |         if (shouldNotStrip()) { | 
					
						
							|  |  |  |             doNotStrip '**/*.so' | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2019-09-02 17:31:51 -07:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-21 14:09:33 -08:00
										 |  |  |     signingConfigs { | 
					
						
							| 
									
										
										
										
											2021-06-07 09:19:18 -07:00
										 |  |  |         debug { | 
					
						
							|  |  |  |             if (hasCustomDebugKeystore()) { | 
					
						
							|  |  |  |                 storeFile new File(getDebugKeystoreFile()) | 
					
						
							|  |  |  |                 storePassword getDebugKeystorePassword() | 
					
						
							|  |  |  |                 keyAlias getDebugKeyAlias() | 
					
						
							|  |  |  |                 keyPassword getDebugKeystorePassword() | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-21 14:09:33 -08:00
										 |  |  |         release { | 
					
						
							|  |  |  |             File keystoreFile = new File(getReleaseKeystoreFile()) | 
					
						
							|  |  |  |             if (keystoreFile.isFile()) { | 
					
						
							|  |  |  |                 storeFile keystoreFile | 
					
						
							|  |  |  |                 storePassword getReleaseKeystorePassword() | 
					
						
							|  |  |  |                 keyAlias getReleaseKeyAlias() | 
					
						
							|  |  |  |                 keyPassword getReleaseKeystorePassword() | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     buildTypes { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         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.
 | 
					
						
							|  |  |  |             zipAlignEnabled shouldZipAlign() | 
					
						
							|  |  |  |             if (shouldSign()) { | 
					
						
							|  |  |  |                 signingConfig signingConfigs.release | 
					
						
							|  |  |  |             } else { | 
					
						
							|  |  |  |                 signingConfig null | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2019-09-02 17:31:51 -07:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     sourceSets { | 
					
						
							|  |  |  |         main { | 
					
						
							|  |  |  |             manifest.srcFile 'AndroidManifest.xml' | 
					
						
							| 
									
										
										
										
											2019-10-18 09:59:04 -07:00
										 |  |  |             java.srcDirs = ['src'] | 
					
						
							|  |  |  |             res.srcDirs = ['res'] | 
					
						
							|  |  |  |             aidl.srcDirs = ['aidl'] | 
					
						
							|  |  |  |             assets.srcDirs = ['assets'] | 
					
						
							| 
									
										
										
										
											2019-09-02 17:31:51 -07:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2021-03-22 10:38:25 -07:00
										 |  |  |         debug.jniLibs.srcDirs = ['libs/debug', 'libs/debug/vulkan_validation_layers'] | 
					
						
							| 
									
										
										
										
											2019-10-18 09:59:04 -07:00
										 |  |  |         release.jniLibs.srcDirs = ['libs/release'] | 
					
						
							| 
									
										
										
										
											2019-09-02 17:31:51 -07:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     applicationVariants.all { variant -> | 
					
						
							|  |  |  |         variant.outputs.all { output -> | 
					
						
							|  |  |  |             output.outputFileName = "android_${variant.name}.apk" | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2020-07-31 16:48:08 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | task copyAndRenameDebugApk(type: Copy) { | 
					
						
							|  |  |  |     from "$buildDir/outputs/apk/debug/android_debug.apk" | 
					
						
							|  |  |  |     into getExportPath() | 
					
						
							|  |  |  |     rename "android_debug.apk", getExportFilename() | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | task copyAndRenameReleaseApk(type: Copy) { | 
					
						
							|  |  |  |     from "$buildDir/outputs/apk/release/android_release.apk" | 
					
						
							|  |  |  |     into getExportPath() | 
					
						
							|  |  |  |     rename "android_release.apk", getExportFilename() | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | task copyAndRenameDebugAab(type: Copy) { | 
					
						
							|  |  |  |     from "$buildDir/outputs/bundle/debug/build-debug.aab" | 
					
						
							|  |  |  |     into getExportPath() | 
					
						
							|  |  |  |     rename "build-debug.aab", getExportFilename() | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | task copyAndRenameReleaseAab(type: Copy) { | 
					
						
							|  |  |  |     from "$buildDir/outputs/bundle/release/build-release.aab" | 
					
						
							|  |  |  |     into getExportPath() | 
					
						
							|  |  |  |     rename "build-release.aab", getExportFilename() | 
					
						
							|  |  |  | } |