/android/pytorch_android/build.gradle
https://github.com/pytorch/pytorch · Gradle · 144 lines · 129 code · 15 blank · 0 comment · 0 complexity · 9131d972395f884ac5fdf31baa0a799d MD5 · raw file
- apply plugin: 'com.android.library'
- apply plugin: 'maven'
- android {
- compileSdkVersion rootProject.compileSdkVersion
- buildToolsVersion rootProject.buildToolsVersion
- defaultConfig {
- minSdkVersion rootProject.minSdkVersion
- targetSdkVersion rootProject.targetSdkVersion
- versionCode 0
- versionName "0.1"
- testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
- ndk {
- abiFilters ABI_FILTERS.split(",")
- }
- externalNativeBuild {
- cmake {
- arguments "-DANDROID_STL=c++_shared"
- }
- }
- }
- buildTypes {
- debug {
- minifyEnabled false
- debuggable true
- }
- release {
- minifyEnabled false
- }
- }
- sourceSets {
- main {
- java {
- exclude 'org/pytorch/LiteModuleLoader.java'
- exclude 'org/pytorch/LiteNativePeer.java'
- }
- jniLibs.srcDirs = ['src/main/jniLibs']
- }
- androidTest {
- java {
- exclude 'org/pytorch/PytorchHostTests.java'
- }
- }
- }
- externalNativeBuild {
- cmake {
- path "CMakeLists.txt"
- }
- }
- packagingOptions {
- if (nativeLibsDoNotStrip.toBoolean()) {
- doNotStrip "**/*.so"
- logger.warn('WARNING: nativeLibsDoNotStrip==true; debug symbols included')
- }
- }
- useLibrary 'android.test.runner'
- useLibrary 'android.test.base'
- useLibrary 'android.test.mock'
- }
- dependencies {
- implementation 'com.facebook.fbjni:fbjni-java-only:' + rootProject.fbjniJavaOnlyVersion
- implementation 'com.android.support:appcompat-v7:' + rootProject.androidSupportAppCompatV7Version
- implementation 'com.facebook.soloader:nativeloader:' + rootProject.soLoaderNativeLoaderVersion
- testImplementation 'junit:junit:' + rootProject.junitVersion
- testImplementation 'androidx.test:core:' + rootProject.coreVersion
- androidTestImplementation 'junit:junit:' + rootProject.junitVersion
- androidTestImplementation 'androidx.test:core:' + rootProject.coreVersion
- androidTestImplementation 'androidx.test.ext:junit:' + rootProject.extJUnitVersion
- androidTestImplementation 'androidx.test:rules:' + rootProject.rulesVersion
- androidTestImplementation 'androidx.test:runner:' + rootProject.runnerVersion
- }
- apply from: rootProject.file('gradle/release.gradle')
- task sourcesJar(type: Jar) {
- from android.sourceSets.main.java.srcDirs
- classifier = 'sources'
- }
- def getLibtorchHeadersDir() {
- def abi = ABI_FILTERS.split(",")[0]
- return "$rootDir/pytorch_android/src/main/cpp/libtorch_include/$abi"
- }
- afterEvaluate {
- if (POM_PACKAGING == 'aar') {
- android.libraryVariants.all { variant ->
- variant.outputs.each { output ->
- File f = output.outputFile
- if (f.name.endsWith(".aar")) {
- output.assemble.finalizedBy addFolderToAarTask(
- "addHeadersToAar" + variant.name,
- f.path,
- getLibtorchHeadersDir(),
- "headers")
- }
- }
- }
- }
- }
- tasks.whenTaskAdded { task ->
- if (task.name.startsWith("bundle") && task.name.endsWith("Aar")) {
- task.doLast {
- addFolderToAarTask(
- "addHeadersTo" + task.name,
- task.archivePath,
- getLibtorchHeadersDir(),
- "headers").execute()
- }
- }
- }
- def addFolderToAarTask(taskName, aarPath, folderPath, folderPathInAar) {
- def tmpDir = file("${buildDir}/${taskName}")
- tmpDir.mkdir()
- def tmpDirFolder = file("${tmpDir.path}/${folderPathInAar}")
- tmpDirFolder.mkdir()
- return tasks.create(name: taskName) {
- doLast {
- copy {
- from zipTree(aarPath)
- into tmpDir
- }
- copy {
- from fileTree(folderPath)
- into tmpDirFolder
- }
- ant.zip(destfile: aarPath) {
- fileset(dir: tmpDir.path)
- }
- delete tmpDir
- }
- }
- }
- artifacts.add('archives', sourcesJar)