mirror of
				https://github.com/PaddlePaddle/FastDeploy.git
				synced 2025-11-01 04:12:58 +08:00 
			
		
		
		
	 4e261f702f
			
		
	
	4e261f702f
	
	
	
		
			
			* [Android] Update SDK download links * [Android] Revert c++ sdk download link * [Android] Update c++ sdk download link * [Android] Update c++ sdk download link * [Android] Update c++ sdk download link * [Android] Update c++ sdk download link * [Android] Update c++ sdk download link
		
			
				
	
	
		
			113 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Groovy
		
	
	
	
	
	
			
		
		
	
	
			113 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Groovy
		
	
	
	
	
	
| apply plugin: 'com.android.library'
 | |
| 
 | |
| 
 | |
| android {
 | |
|     compileSdk 28
 | |
| 
 | |
|     defaultConfig {
 | |
|         minSdk 15
 | |
|         targetSdk 28
 | |
| 
 | |
|         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
 | |
|         consumerProguardFiles "consumer-rules.pro"
 | |
|         externalNativeBuild {
 | |
|             cmake {
 | |
|                 arguments '-DANDROID_PLATFORM=android-21', '-DANDROID_STL=c++_shared', "-DANDROID_TOOLCHAIN=clang"
 | |
|                 abiFilters 'armeabi-v7a', 'arm64-v8a'
 | |
|                 cppFlags "-std=c++11"
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     buildTypes {
 | |
|         release {
 | |
|             minifyEnabled false
 | |
|             proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
 | |
|         }
 | |
|     }
 | |
|     externalNativeBuild {
 | |
|         cmake {
 | |
|             path "src/main/cpp/CMakeLists.txt"
 | |
|             version "3.10.2"
 | |
|         }
 | |
|     }
 | |
|     sourceSets {
 | |
|         main {
 | |
|             jniLibs.srcDirs = ['libs']
 | |
|         }
 | |
|     }
 | |
|     ndkVersion '20.1.5948944'
 | |
| }
 | |
| 
 | |
| dependencies {
 | |
| 
 | |
|     implementation 'com.android.support:appcompat-v7:28.0.0'
 | |
|     testImplementation 'junit:junit:4.13.2'
 | |
|     androidTestImplementation 'com.android.support.test:runner:1.0.2'
 | |
|     androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
 | |
| }
 | |
| 
 | |
| def FD_CXX_LIB = [
 | |
|         [
 | |
|                 'src' : 'https://bj.bcebos.com/fastdeploy/dev/android/fastdeploy-android-with-text-0.0.0-shared.tgz',
 | |
|                 'dest': 'libs',
 | |
|                 'name': 'fastdeploy-android-latest-shared-dev'
 | |
|         ]
 | |
| ]
 | |
| 
 | |
| task downloadAndExtractLibs(type: DefaultTask) {
 | |
|     doFirst {
 | |
|         println "[INFO] Downloading and extracting fastdeploy android c++ lib ..."
 | |
|     }
 | |
|     doLast {
 | |
|         String cachePath = "cache"
 | |
|         if (!file("${cachePath}").exists()) {
 | |
|             mkdir "${cachePath}"
 | |
|         }
 | |
| 
 | |
|         FD_CXX_LIB.eachWithIndex { lib, index ->
 | |
| 
 | |
|             String[] libPaths = lib.src.split("/")
 | |
|             String sdkName = lib.name
 | |
|             String libName = libPaths[libPaths.length - 1]
 | |
|             libName = libName.substring(0, libName.indexOf("tgz") - 1)
 | |
|             String cacheName = cachePath + "/" + "${libName}.tgz"
 | |
| 
 | |
|             String libDir = lib.dest + "/" + libName
 | |
|             String sdkDir = lib.dest + "/" + sdkName
 | |
| 
 | |
|             boolean copyFiles = false
 | |
|             if (!file("${sdkDir}").exists()) {
 | |
|                 // Download lib and rename to sdk name later.
 | |
|                 if (!file("${cacheName}").exists()) {
 | |
|                     println "[INFO] Downloading ${lib.src} -> ${cacheName}"
 | |
|                     ant.get(src: lib.src, dest: file("${cacheName}"))
 | |
|                 }
 | |
|                 copyFiles = true
 | |
|             }
 | |
| 
 | |
|             if (copyFiles) {
 | |
|                 println "[INFO] Taring ${cacheName} -> ${libDir}"
 | |
|                 copy { from(tarTree("${cacheName}")) into("${lib.dest}") }
 | |
|                 if (!libName.equals(sdkName)) {
 | |
|                     if (file("${sdkDir}").exists()) {
 | |
|                         delete("${sdkDir}")
 | |
|                         println "[INFO] Remove old ${sdkDir}"
 | |
|                     }
 | |
|                     mkdir "${sdkDir}"
 | |
|                     println "[INFO] Coping ${libDir} -> ${sdkDir}"
 | |
|                     copy { from("${libDir}") into("${sdkDir}") }
 | |
|                     delete("${libDir}")
 | |
|                     println "[INFO] Removed ${libDir}"
 | |
|                     println "[INFO] Update ${sdkDir} done!"
 | |
|                 }
 | |
|             } else {
 | |
|                 println "[INFO] ${sdkDir} already exists!"
 | |
|                 println "[WARN] Please delete ${cacheName} and ${sdkDir} " +
 | |
|                         "if you want to UPDATE ${sdkName} c++ lib. Then, rebuild this sdk."
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| }
 | |
| 
 | |
| preBuild.dependsOn downloadAndExtractLibs |