mirror of
				https://github.com/godotengine/godot.git
				synced 2025-10-31 13:41:03 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			193 lines
		
	
	
	
		
			5.6 KiB
		
	
	
	
		
			Groovy
		
	
	
	
	
	
			
		
		
	
	
			193 lines
		
	
	
	
		
			5.6 KiB
		
	
	
	
		
			Groovy
		
	
	
	
	
	
| // Gradle build config for Godot Engine's Android port.
 | |
| apply from: 'config.gradle'
 | |
| 
 | |
| buildscript {
 | |
|     apply from: 'config.gradle'
 | |
| 
 | |
|     repositories {
 | |
|         google()
 | |
|         jcenter()
 | |
|     }
 | |
|     dependencies {
 | |
|         classpath libraries.androidGradlePlugin
 | |
|         classpath libraries.kotlinGradlePlugin
 | |
|     }
 | |
| }
 | |
| 
 | |
| apply plugin: 'com.android.application'
 | |
| 
 | |
| allprojects {
 | |
|     repositories {
 | |
|         mavenCentral()
 | |
|         google()
 | |
|         jcenter()
 | |
| 
 | |
|         // Godot user plugins custom maven repos
 | |
|         String[] mavenRepos = getGodotPluginsMavenRepos()
 | |
|         if (mavenRepos != null && mavenRepos.size() > 0) {
 | |
|             for (String repoUrl : mavenRepos) {
 | |
|                 maven {
 | |
|                     url repoUrl
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| }
 | |
| 
 | |
| dependencies {
 | |
|     implementation libraries.supportCoreUtils
 | |
|     implementation libraries.kotlinStdLib
 | |
|     implementation libraries.v4Support
 | |
| 
 | |
|     if (rootProject.findProject(":lib")) {
 | |
|         implementation project(":lib")
 | |
|     } else if (rootProject.findProject(":godot:lib")) {
 | |
|         implementation project(":godot:lib")
 | |
|     } 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'])
 | |
|     }
 | |
| 
 | |
|     // Godot user plugins remote dependencies
 | |
|     String[] remoteDeps = getGodotPluginsRemoteBinaries()
 | |
|     if (remoteDeps != null && remoteDeps.size() > 0) {
 | |
|         for (String dep : remoteDeps) {
 | |
|             implementation dep
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     // Godot user plugins local dependencies
 | |
|     String[] pluginsBinaries = getGodotPluginsLocalBinaries()
 | |
|     if (pluginsBinaries != null && pluginsBinaries.size() > 0) {
 | |
|         implementation files(pluginsBinaries)
 | |
|     }
 | |
| }
 | |
| 
 | |
| android {
 | |
|     compileSdkVersion versions.compileSdk
 | |
|     buildToolsVersion versions.buildTools
 | |
| 
 | |
|     compileOptions {
 | |
|         sourceCompatibility versions.javaVersion
 | |
|         targetCompatibility versions.javaVersion
 | |
|     }
 | |
| 
 | |
|     defaultConfig {
 | |
|         // The default ignore pattern for the 'assets' directory includes hidden files and directories which are used by Godot projects.
 | |
|         aaptOptions {
 | |
|             ignoreAssetsPattern "!.svn:!.git:!.gitignore:!.ds_store:!*.scc:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"
 | |
|         }
 | |
| 
 | |
|         ndk {
 | |
|             String[] export_abi_list = getExportEnabledABIs()
 | |
|             abiFilters export_abi_list
 | |
|         }
 | |
| 
 | |
|         manifestPlaceholders = [godotEditorVersion: getGodotEditorVersion()]
 | |
| 
 | |
|         // Feel free to modify the application id to your own.
 | |
|         applicationId getExportPackageName()
 | |
|         versionCode getExportVersionCode()
 | |
|         versionName getExportVersionName()
 | |
|         minSdkVersion versions.minSdk
 | |
|         targetSdkVersion versions.targetSdk
 | |
|     }
 | |
| 
 | |
|     lintOptions {
 | |
|         abortOnError false
 | |
|         disable 'MissingTranslation', 'UnusedResources'
 | |
|     }
 | |
| 
 | |
|     ndkVersion versions.ndkVersion
 | |
| 
 | |
|     packagingOptions {
 | |
|         exclude 'META-INF/LICENSE'
 | |
|         exclude 'META-INF/NOTICE'
 | |
| 
 | |
|         // 'doNotStrip' is enabled for development within Android Studio
 | |
|         if (shouldNotStrip()) {
 | |
|             doNotStrip '**/*.so'
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     signingConfigs {
 | |
|         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
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     sourceSets {
 | |
|         main {
 | |
|             manifest.srcFile 'AndroidManifest.xml'
 | |
|             java.srcDirs = ['src']
 | |
|             res.srcDirs = ['res']
 | |
|             aidl.srcDirs = ['aidl']
 | |
|             assets.srcDirs = ['assets']
 | |
|         }
 | |
|         debug.jniLibs.srcDirs = ['libs/debug', 'libs/debug/vulkan_validation_layers']
 | |
|         release.jniLibs.srcDirs = ['libs/release']
 | |
|     }
 | |
| 
 | |
|     applicationVariants.all { variant ->
 | |
|         variant.outputs.all { output ->
 | |
|             output.outputFileName = "android_${variant.name}.apk"
 | |
|         }
 | |
|     }
 | |
| }
 | |
| 
 | |
| 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()
 | |
| }
 | 
