123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189 |
- // 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:!.ds_store:!*.scc:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"
- }
- ndk {
- String[] export_abi_list = getExportEnabledABIs()
- abiFilters export_abi_list
- }
- // 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'
- // Should be uncommented for development purpose within Android Studio
- // 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']
- 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()
- }
|