MNN/project/android/nativepub.gradle

67 lines
2.5 KiB
Groovy
Raw Permalink Normal View History

2019-04-17 10:49:11 +08:00
android {
packagingOptions{
exclude '**/*.so'
}
}
task appendCMakeEnvVars () {
android.defaultConfig.externalNativeBuild.cmake.arguments.add((String)"-DNATIVE_LIBRARY_OUTPUT=$buildDir/native-packed/native/libs")
android.defaultConfig.externalNativeBuild.cmake.arguments.add((String)"-DNATIVE_INCLUDE_OUTPUT=$buildDir/native-packed/native/includes")
}
afterEvaluate {
tasks.create(name: "copyCMakeExports", type: Copy, dependsOn: appendCMakeEnvVars) {
from "CMakeExports.txt"
into "$buildDir/native-packed/native"
}
preBuild.dependsOn copyCMakeExports
}
android.libraryVariants.all {variant ->
def name = variant.buildType.name
def zipTask = tasks.create(name: "zipNative${name.capitalize()}", type: Zip) {
2025-08-22 18:04:08 +08:00
from project.zipTree("${variant.packageLibrary.destinationDir.path}/${artifactName}-${name}.aar")
2019-04-17 10:49:11 +08:00
from "$buildDir/native-packed"
2025-08-22 18:04:08 +08:00
archiveName "${artifactName}-${name}-tmp.aar"
2019-04-17 10:49:11 +08:00
destinationDir(variant.packageLibrary.destinationDir)
2025-08-22 18:04:08 +08:00
inputs.dir("$buildDir/native-packed")
inputs.file("${variant.packageLibrary.destinationDir.path}/${artifactName}-${name}.aar")
outputs.file("${variant.packageLibrary.destinationDir.path}/${artifactName}-${name}.aar")
2019-04-17 10:49:11 +08:00
}
2025-08-22 18:04:08 +08:00
zipTask.dependsOn("externalNativeBuild${name.capitalize()}")
// Ensure QNN dependencies are prepared when BUILD_QNN is enabled
if (project.ext.has('BUILD_QNN') && project.ext.BUILD_QNN) {
zipTask.dependsOn('prepareQnnDeps')
}
2019-04-17 10:49:11 +08:00
zipTask.doLast {
copy {
2025-08-22 18:04:08 +08:00
from "${variant.packageLibrary.destinationDir.path}/${artifactName}-${name}-tmp.aar"
2019-04-17 10:49:11 +08:00
into "${variant.packageLibrary.destinationDir.path}"
rename{
String fileName->
fileName.replace('-tmp','')
}
}
2025-08-22 18:04:08 +08:00
delete "${variant.packageLibrary.destinationDir.path}/${artifactName}-${name}-tmp.aar"
println "Generated final AAR: ${variant.packageLibrary.destinationDir.path}/${artifactName}-${name}.aar"
}
def bundleTask = tasks.findByName("bundle${name.capitalize()}Aar")
if (bundleTask != null) {
zipTask.dependsOn(bundleTask)
}
def assembleTask = tasks.findByName("assemble${name.capitalize()}")
if (assembleTask != null) {
assembleTask.dependsOn(zipTask)
zipTask.mustRunAfter(bundleTask)
2019-04-17 10:49:11 +08:00
}
2025-08-22 18:04:08 +08:00
def packageTask = tasks.findByName("package${name.capitalize()}Aar")
if (packageTask != null) {
packageTask.finalizedBy(zipTask)
2019-04-17 10:49:11 +08:00
}
}