mirror of https://github.com/alibaba/MNN.git
67 lines
2.5 KiB
Groovy
67 lines
2.5 KiB
Groovy
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) {
|
|
from project.zipTree("${variant.packageLibrary.destinationDir.path}/${artifactName}-${name}.aar")
|
|
from "$buildDir/native-packed"
|
|
archiveName "${artifactName}-${name}-tmp.aar"
|
|
destinationDir(variant.packageLibrary.destinationDir)
|
|
inputs.dir("$buildDir/native-packed")
|
|
inputs.file("${variant.packageLibrary.destinationDir.path}/${artifactName}-${name}.aar")
|
|
outputs.file("${variant.packageLibrary.destinationDir.path}/${artifactName}-${name}.aar")
|
|
}
|
|
|
|
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')
|
|
}
|
|
|
|
zipTask.doLast {
|
|
copy {
|
|
from "${variant.packageLibrary.destinationDir.path}/${artifactName}-${name}-tmp.aar"
|
|
into "${variant.packageLibrary.destinationDir.path}"
|
|
rename{
|
|
String fileName->
|
|
fileName.replace('-tmp','')
|
|
}
|
|
}
|
|
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)
|
|
}
|
|
def packageTask = tasks.findByName("package${name.capitalize()}Aar")
|
|
if (packageTask != null) {
|
|
packageTask.finalizedBy(zipTask)
|
|
}
|
|
} |