6.7.0 - Alpha6 - 模块化 Gradle 脚本, 将共享构建逻辑迁移至 buildSrc 并抽象为约定插件
This commit is contained in:
@@ -4,26 +4,27 @@
|
||||
* Created by SuperMonster003 on Sep 19, 2024.
|
||||
*/
|
||||
|
||||
apply plugin: 'com.android.library'
|
||||
apply plugin: 'org.jetbrains.kotlin.android'
|
||||
apply plugin: 'kotlin-parcelize'
|
||||
apply from: '../utils.build.gradle'
|
||||
plugins {
|
||||
id 'org.autojs.build.utils'
|
||||
id 'org.autojs.build.properties'
|
||||
id 'com.android.library'
|
||||
id 'org.jetbrains.kotlin.android'
|
||||
id 'kotlin-parcelize'
|
||||
}
|
||||
|
||||
ext["projectName"] = "Rapid OCR"
|
||||
|
||||
def versions = Utils.newVersions(project)
|
||||
|
||||
def versionMap = [
|
||||
"OFFICIAL_NAME" : "1.3.0", /* From original build.gradle file. */
|
||||
"MIN_SDK" : versions["MIN_SDK"] as Integer,
|
||||
"COMPILE_SDK" : versions["COMPILE_SDK"] as Integer,
|
||||
"TARGET_SDK" : versions["TARGET_SDK"] as Integer,
|
||||
"NDK" : versions["RAPID_OCR/NDK"],
|
||||
"CMAKE" : versions["RAPID_OCR/CMAKE"],
|
||||
"OPENCV_MOBILE" : versions["RAPID_OCR/OPENCV_MOBILE"],
|
||||
"OPENCV_MOBILE_LABEL": versions["RAPID_OCR/OPENCV_MOBILE_LABEL"],
|
||||
"ONNX" : versions["RAPID_OCR/ONNX"],
|
||||
"ONNX_RUNTIME" : versions["RAPID_OCR/ONNX_RUNTIME"],
|
||||
"MIN_SDK" : props["MIN_SDK"] as Integer,
|
||||
"COMPILE_SDK" : props["COMPILE_SDK"] as Integer,
|
||||
"TARGET_SDK" : props["TARGET_SDK"] as Integer,
|
||||
"NDK" : props["RAPID_OCR/NDK"],
|
||||
"CMAKE" : props["RAPID_OCR/CMAKE"],
|
||||
"OPENCV_MOBILE" : props["RAPID_OCR/OPENCV_MOBILE"],
|
||||
"OPENCV_MOBILE_LABEL": props["RAPID_OCR/OPENCV_MOBILE_LABEL"],
|
||||
"ONNX" : props["RAPID_OCR/ONNX"],
|
||||
"ONNX_RUNTIME" : props["RAPID_OCR/ONNX_RUNTIME"],
|
||||
]
|
||||
|
||||
def nameMap = [
|
||||
@@ -37,20 +38,29 @@ def nameMap = [
|
||||
]
|
||||
|
||||
def libsToDeploy = [
|
||||
Utils.newLibDeployer(project, nameMap.OPENCV_MOBILE, "https://github.com/nihui/opencv-mobile/releases/download" +
|
||||
utils.newLibDeployer(project, nameMap.OPENCV_MOBILE, "https://github.com/nihui/opencv-mobile/releases/download" +
|
||||
"/v${versionMap.OPENCV_MOBILE_LABEL}/opencv-mobile-${versionMap.OPENCV_MOBILE}-android.zip")
|
||||
.setSourceDir("/opencv-mobile-${versionMap.OPENCV_MOBILE}-android/sdk/native/")
|
||||
.setDestDir("/src/sdk/native/"),
|
||||
Utils.newLibDeployer(project, nameMap.ONNX, "https://github.com/RapidAI/RapidOcrOnnx/releases/download" +
|
||||
utils.newLibDeployer(project, nameMap.ONNX, "https://github.com/RapidAI/RapidOcrOnnx/releases/download" +
|
||||
"/${versionMap.ONNX}/Project_RapidOcrOnnx-${versionMap.ONNX}.7z")
|
||||
.setSourceDir("/Project_RapidOcrOnnx-${versionMap.ONNX}/models/")
|
||||
.setDestDir("/src/main/assets/models/"),
|
||||
Utils.newLibDeployer(project, nameMap.ONNX_RUNTIME, "https://github.com/RapidAI/OnnxruntimeBuilder/releases/download" +
|
||||
utils.newLibDeployer(project, nameMap.ONNX_RUNTIME, "https://github.com/RapidAI/OnnxruntimeBuilder/releases/download" +
|
||||
"/${versionMap.ONNX_RUNTIME}/onnxruntime-${versionMap.ONNX_RUNTIME}-android-shared.7z")
|
||||
.setSourceDir("/onnxruntime-shared/")
|
||||
.setDestDir("/src/main/onnxruntime-shared/"),
|
||||
]
|
||||
|
||||
utils.configureLibraryLifecycleHooks(project, nameMap.PROJECT, [
|
||||
"OPENCV_MOBILE",
|
||||
"OPENCV_MOBILE_LABEL",
|
||||
"ONNX",
|
||||
"ONNX_RUNTIME",
|
||||
"NDK",
|
||||
"CMAKE",
|
||||
].collect { "${nameMap[it]}: ${versionMap[it]}" }, libsToDeploy, "isCleanupRapidOcr", [".cxx"])
|
||||
|
||||
android {
|
||||
|
||||
namespace = "com.benjaminwan.ocrlibrary"
|
||||
@@ -113,29 +123,7 @@ dependencies {
|
||||
androidTestImplementation libs.test.ext.junit
|
||||
androidTestImplementation libs.test.espresso.core
|
||||
|
||||
implementation libs.core.ktx
|
||||
implementation libs.appcompat
|
||||
|
||||
}
|
||||
|
||||
clean.doFirst {
|
||||
delete project.layout.buildDirectory
|
||||
['.cxx'].forEach { delete file(it) }
|
||||
if (gradle.ext["isCleanupRapidOcr"] as Boolean) {
|
||||
libsToDeploy.forEach { it.clean() }
|
||||
} else {
|
||||
println("The library files of ${project.ext["projectName"]} won't be cleaned up due to the configuration")
|
||||
}
|
||||
}
|
||||
|
||||
gradle.taskGraph.whenReady { taskGraph ->
|
||||
if (taskGraph.allTasks.every { it.name == "clean" }) return
|
||||
|
||||
Utils.newFormatted("Version information for ${nameMap.PROJECT} library", [
|
||||
"OPENCV_MOBILE",
|
||||
"OPENCV_MOBILE_LABEL",
|
||||
"ONNX",
|
||||
"ONNX_RUNTIME",
|
||||
"NDK",
|
||||
"CMAKE",
|
||||
].collect { "${nameMap[it]}: ${versionMap[it]}" }).print()
|
||||
|
||||
libsToDeploy.forEach { it.deploy() }
|
||||
}
|
||||
@@ -4,7 +4,8 @@ project(RapidOcr)
|
||||
|
||||
# OnnxRuntime
|
||||
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../onnxruntime-shared/OnnxRuntimeWrapper.cmake)
|
||||
get_filename_component(MODULE_DIR "${CMAKE_CURRENT_LIST_DIR}/../../.." ABSOLUTE)
|
||||
include(${MODULE_DIR}/src/main/onnxruntime-shared/OnnxRuntimeWrapper.cmake)
|
||||
find_package(OnnxRuntime REQUIRED)
|
||||
if (OnnxRuntime_FOUND)
|
||||
message(STATUS "OnnxRuntime_LIBS: ${OnnxRuntime_LIBS}")
|
||||
@@ -15,7 +16,7 @@ endif (OnnxRuntime_FOUND)
|
||||
|
||||
## opencv 库
|
||||
|
||||
set(OpenCV_DIR "${CMAKE_SOURCE_DIR}/../../sdk/native/jni")
|
||||
set(OpenCV_DIR "${MODULE_DIR}/src/sdk/native/jni")
|
||||
find_package(OpenCV REQUIRED)
|
||||
if (OpenCV_FOUND)
|
||||
message(STATUS "OpenCV_LIBS: ${OpenCV_LIBS}")
|
||||
|
||||
Reference in New Issue
Block a user