|
@@ -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/"
|
|
|
|
|
|
-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'
|
|
|
- }
|
|
|
+/**
|
|
|
+ * 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')
|
|
|
+}
|
|
|
|
|
|
- packagingOptions {
|
|
|
- exclude 'META-INF/LICENSE'
|
|
|
- exclude 'META-INF/NOTICE'
|
|
|
- }
|
|
|
+/**
|
|
|
+ * 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')
|
|
|
+}
|
|
|
|
|
|
- // Both signing and zip-aligning will be done at export time
|
|
|
- buildTypes.all { buildType ->
|
|
|
- buildType.zipAlignEnabled false
|
|
|
- buildType.signingConfig null
|
|
|
- }
|
|
|
+/**
|
|
|
+ * 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')
|
|
|
+}
|
|
|
|
|
|
- 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
|
|
|
- ]
|
|
|
- }
|
|
|
+/**
|
|
|
+ * 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')
|
|
|
+}
|
|
|
|
|
|
- // 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"
|
|
|
- // }
|
|
|
- //}
|
|
|
+/**
|
|
|
+ * 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))
|
|
|
}
|
|
|
|
|
|
-//CHUNK_GLOBAL_BEGIN
|
|
|
-//CHUNK_GLOBAL_END
|
|
|
+/**
|
|
|
+ * 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',
|
|
|
+ ]
|
|
|
+}
|