Split the Android platform java logic into an Android library module (lib) and an application module (app).
The application module `app` serves double duties of providing the prebuilt Godot binaries ('android_debug.apk', 'android_release.apk') and the Godot custom build template ('android_source.zip').
This commit is contained in:
parent
ba854bbc7b
commit
7fabfd402f
141 changed files with 386 additions and 282 deletions
|
|
@ -1,111 +1,95 @@
|
|||
// Gradle build config for Godot Engine's Android port.
|
||||
//
|
||||
// Do not remove/modify comments ending with BEGIN/END, they are used to inject
|
||||
// addon-specific configuration.
|
||||
apply from: 'app/config.gradle'
|
||||
|
||||
buildscript {
|
||||
apply from: 'app/config.gradle'
|
||||
|
||||
repositories {
|
||||
google()
|
||||
jcenter()
|
||||
//CHUNK_BUILDSCRIPT_REPOSITORIES_BEGIN
|
||||
//CHUNK_BUILDSCRIPT_REPOSITORIES_END
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:3.4.2'
|
||||
//CHUNK_BUILDSCRIPT_DEPENDENCIES_BEGIN
|
||||
//CHUNK_BUILDSCRIPT_DEPENDENCIES_END
|
||||
classpath libraries.androidGradlePlugin
|
||||
}
|
||||
}
|
||||
|
||||
apply plugin: 'com.android.application'
|
||||
|
||||
allprojects {
|
||||
repositories {
|
||||
mavenCentral()
|
||||
google()
|
||||
jcenter()
|
||||
//CHUNK_ALLPROJECTS_REPOSITORIES_BEGIN
|
||||
//CHUNK_ALLPROJECTS_REPOSITORIES_END
|
||||
mavenCentral()
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation "com.android.support:support-core-utils:28.0.0"
|
||||
//CHUNK_DEPENDENCIES_BEGIN
|
||||
//CHUNK_DEPENDENCIES_END
|
||||
def binDir = "../../../bin/"
|
||||
|
||||
/**
|
||||
* Copy the generated 'android_debug.apk' binary template into the Godot bin directory.
|
||||
* Depends on the app build task to ensure the binary is generated prior to copying.
|
||||
*/
|
||||
task copyDebugBinaryToBin(type: Copy) {
|
||||
dependsOn ':app:build'
|
||||
from('app/build/outputs/apk/debug')
|
||||
into(binDir)
|
||||
include('android_debug.apk')
|
||||
}
|
||||
|
||||
android {
|
||||
compileSdkVersion 28
|
||||
buildToolsVersion "28.0.3"
|
||||
useLibrary 'org.apache.http.legacy'
|
||||
|
||||
defaultConfig {
|
||||
minSdkVersion 18
|
||||
targetSdkVersion 28
|
||||
//CHUNK_ANDROID_DEFAULTCONFIG_BEGIN
|
||||
//CHUNK_ANDROID_DEFAULTCONFIG_END
|
||||
}
|
||||
|
||||
lintOptions {
|
||||
abortOnError false
|
||||
disable 'MissingTranslation', 'UnusedResources'
|
||||
}
|
||||
|
||||
packagingOptions {
|
||||
exclude 'META-INF/LICENSE'
|
||||
exclude 'META-INF/NOTICE'
|
||||
}
|
||||
|
||||
// Both signing and zip-aligning will be done at export time
|
||||
buildTypes.all { buildType ->
|
||||
buildType.zipAlignEnabled false
|
||||
buildType.signingConfig null
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
main {
|
||||
manifest.srcFile 'AndroidManifest.xml'
|
||||
java.srcDirs = [
|
||||
'src'
|
||||
//DIR_SRC_BEGIN
|
||||
//DIR_SRC_END
|
||||
]
|
||||
res.srcDirs = [
|
||||
'res'
|
||||
//DIR_RES_BEGIN
|
||||
//DIR_RES_END
|
||||
]
|
||||
aidl.srcDirs = [
|
||||
'aidl'
|
||||
//DIR_AIDL_BEGIN
|
||||
//DIR_AIDL_END
|
||||
]
|
||||
assets.srcDirs = [
|
||||
'assets'
|
||||
//DIR_ASSETS_BEGIN
|
||||
//DIR_ASSETS_END
|
||||
]
|
||||
}
|
||||
debug.jniLibs.srcDirs = [
|
||||
'libs/debug'
|
||||
//DIR_JNI_DEBUG_BEGIN
|
||||
//DIR_JNI_DEBUG_END
|
||||
]
|
||||
release.jniLibs.srcDirs = [
|
||||
'libs/release'
|
||||
//DIR_JNI_RELEASE_BEGIN
|
||||
//DIR_JNI_RELEASE_END
|
||||
]
|
||||
}
|
||||
|
||||
// No longer used, as it's not useful for build source template
|
||||
//applicationVariants.all { variant ->
|
||||
// variant.outputs.all { output ->
|
||||
// output.outputFileName = "../../../../../../../bin/android_${variant.name}.apk"
|
||||
// }
|
||||
//}
|
||||
/**
|
||||
* Copy the generated 'android_release.apk' binary template into the Godot bin directory.
|
||||
* Depends on the app build task to ensure the binary is generated prior to copying.
|
||||
*/
|
||||
task copyReleaseBinaryToBin(type: Copy) {
|
||||
dependsOn ':app:build'
|
||||
from('app/build/outputs/apk/release')
|
||||
into(binDir)
|
||||
include('android_release.apk')
|
||||
}
|
||||
|
||||
//CHUNK_GLOBAL_BEGIN
|
||||
//CHUNK_GLOBAL_END
|
||||
/**
|
||||
* Copy the Godot android library archive debug file into the app debug libs directory.
|
||||
* Depends on the library build task to ensure the AAR file is generated prior to copying.
|
||||
*/
|
||||
task copyDebugAAR(type: Copy) {
|
||||
dependsOn ':lib:build'
|
||||
from('lib/build/outputs/aar')
|
||||
into('app/libs/debug')
|
||||
include('godot-lib.debug.aar')
|
||||
}
|
||||
|
||||
/**
|
||||
* Copy the Godot android library archive release file into the app release libs directory.
|
||||
* Depends on the library build task to ensure the AAR file is generated prior to copying.
|
||||
*/
|
||||
task copyReleaseAAR(type: Copy) {
|
||||
dependsOn ':lib:build'
|
||||
from('lib/build/outputs/aar')
|
||||
into('app/libs/release')
|
||||
include('godot-lib.release.aar')
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate Godot custom build template by zipping the source files from the app directory, as well
|
||||
* as the AAR files generated by 'copyDebugAAR' and 'copyReleaseAAR'.
|
||||
* The zip file also includes some gradle tools to allow building of the custom build.
|
||||
*/
|
||||
task zipCustomBuild(type: Zip) {
|
||||
dependsOn 'copyDebugAAR'
|
||||
dependsOn 'copyReleaseAAR'
|
||||
from(fileTree(dir: 'app', excludes: ['**/build/**', '**/.gradle/**', '**/*.iml']), fileTree(dir: '.', includes: ['gradle.properties','gradlew', 'gradlew.bat', 'gradle/**']))
|
||||
include '**/*'
|
||||
archiveName 'android_source.zip'
|
||||
destinationDir(file(binDir))
|
||||
}
|
||||
|
||||
/**
|
||||
* Master task used to coordinate the tasks defined above to generate the set of Godot templates.
|
||||
*/
|
||||
task generateGodotTemplates(type: GradleBuild) {
|
||||
tasks = [
|
||||
// Copy the generated aar library files to the custom build directory.
|
||||
'copyDebugAAR', 'copyReleaseAAR',
|
||||
// Zip the custom build directory.
|
||||
'zipCustomBuild',
|
||||
// Copy the prebuilt binary templates to the bin directory.
|
||||
'copyDebugBinaryToBin', 'copyReleaseBinaryToBin',
|
||||
]
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue