mirror of
https://github.com/godotengine/godot.git
synced 2026-01-03 18:11:19 +03:00
Re-architecture of the Godot Android plugin.
This commit is contained in:
@@ -65,10 +65,10 @@ task copyReleaseBinaryToBin(type: Copy) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Copy the Godot android library archive debug file into the app debug libs directory.
|
||||
* Copy the Godot android library archive debug file into the app module debug libs directory.
|
||||
* Depends on the library build task to ensure the AAR file is generated prior to copying.
|
||||
*/
|
||||
task copyDebugAAR(type: Copy) {
|
||||
task copyDebugAARToAppModule(type: Copy) {
|
||||
dependsOn ':lib:assembleDebug'
|
||||
from('lib/build/outputs/aar')
|
||||
into('app/libs/debug')
|
||||
@@ -76,16 +76,45 @@ task copyDebugAAR(type: Copy) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Copy the Godot android library archive release file into the app release libs directory.
|
||||
* Copy the Godot android library archive debug file into the root bin directory.
|
||||
* Depends on the library build task to ensure the AAR file is generated prior to copying.
|
||||
*/
|
||||
task copyReleaseAAR(type: Copy) {
|
||||
task copyDebugAARToBin(type: Copy) {
|
||||
dependsOn ':lib:assembleDebug'
|
||||
from('lib/build/outputs/aar')
|
||||
into(binDir)
|
||||
include('godot-lib.debug.aar')
|
||||
}
|
||||
|
||||
/**
|
||||
* Copy the Godot android library archive release file into the app module release libs directory.
|
||||
* Depends on the library build task to ensure the AAR file is generated prior to copying.
|
||||
*/
|
||||
task copyReleaseAARToAppModule(type: Copy) {
|
||||
dependsOn ':lib:assembleRelease'
|
||||
from('lib/build/outputs/aar')
|
||||
into('app/libs/release')
|
||||
include('godot-lib.release.aar')
|
||||
}
|
||||
|
||||
task copyGodotPaymentPluginToAppModule(type: Copy) {
|
||||
dependsOn ':plugins:godotpayment:assembleRelease'
|
||||
from('plugins/godotpayment/build/outputs/aar')
|
||||
into('app/libs/plugins')
|
||||
include('GodotPayment.release.aar')
|
||||
}
|
||||
|
||||
/**
|
||||
* Copy the Godot android library archive release file into the root bin directory.
|
||||
* Depends on the library build task to ensure the AAR file is generated prior to copying.
|
||||
*/
|
||||
task copyReleaseAARToBin(type: Copy) {
|
||||
dependsOn ':lib:assembleRelease'
|
||||
from('lib/build/outputs/aar')
|
||||
into(binDir)
|
||||
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'.
|
||||
@@ -111,19 +140,24 @@ task generateGodotTemplates(type: GradleBuild) {
|
||||
startParameter.excludedTaskNames += ":lib:" + getSconsTaskName(buildType)
|
||||
}
|
||||
|
||||
tasks = []
|
||||
tasks = ["copyGodotPaymentPluginToAppModule"]
|
||||
|
||||
// Only build the apks and aar files for which we have native shared libraries.
|
||||
for (String target : supportedTargets.keySet()) {
|
||||
File targetLibs = new File("lib/libs/" + target)
|
||||
if (targetLibs != null && targetLibs.isDirectory()) {
|
||||
File[] targetLibsContents = targetLibs.listFiles()
|
||||
if (targetLibsContents != null && targetLibsContents.length > 0) {
|
||||
// Copy the generated aar library files to the custom build directory.
|
||||
tasks += "copy" + target.capitalize() + "AAR"
|
||||
// Copy the prebuilt binary templates to the bin directory.
|
||||
tasks += "copy" + target.capitalize() + "BinaryToBin"
|
||||
}
|
||||
if (targetLibs != null
|
||||
&& targetLibs.isDirectory()
|
||||
&& targetLibs.listFiles() != null
|
||||
&& targetLibs.listFiles().length > 0) {
|
||||
String capitalizedTarget = target.capitalize()
|
||||
// Copy the generated aar library files to the custom build directory.
|
||||
tasks += "copy" + capitalizedTarget + "AARToAppModule"
|
||||
// Copy the generated aar library files to the bin directory.
|
||||
tasks += "copy" + capitalizedTarget + "AARToBin"
|
||||
// Copy the prebuilt binary templates to the bin directory.
|
||||
tasks += "copy" + capitalizedTarget + "BinaryToBin"
|
||||
} else {
|
||||
logger.lifecycle("No native shared libs for target $target. Skipping build.")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -140,6 +174,12 @@ task cleanGodotTemplates(type: Delete) {
|
||||
// Delete the library generated AAR files
|
||||
delete("lib/build/outputs/aar")
|
||||
|
||||
// Delete the godotpayment libs directory contents
|
||||
delete("plugins/godotpayment/libs")
|
||||
|
||||
// Delete the generated godotpayment aar
|
||||
delete("plugins/godotpayment/build/outputs/aar")
|
||||
|
||||
// Delete the app libs directory contents
|
||||
delete("app/libs")
|
||||
|
||||
@@ -150,4 +190,6 @@ task cleanGodotTemplates(type: Delete) {
|
||||
delete("$binDir/android_debug.apk")
|
||||
delete("$binDir/android_release.apk")
|
||||
delete("$binDir/android_source.zip")
|
||||
delete("$binDir/godot-lib.debug.aar")
|
||||
delete("$binDir/godot-lib.release.aar")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user