blob: d88fa8aef38bfeef9d73385226aba3913b5aca02 [file] [log] [blame]
repositories {
google()
jcenter()
}
buildscript {
repositories {
google()
// TODO: jcenter will soon go away. Find a replacement: https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.2.0'
}
}
apply plugin: 'com.android.library'
def cmakeListDir = "${rootDir}/../../../.."
def hostBuildDir = "${cmakeListDir}/../iree-build-host"
def hostInstallDir = "${hostBuildDir}/install"
android {
compileSdkVersion 29
defaultConfig {
minSdkVersion 28
targetSdkVersion 29
externalNativeBuild {
cmake {
arguments "-DIREE_BUILD_BINDINGS_TFLITE=ON",
"-DIREE_BUILD_BINDINGS_TFLITE_JAVA=ON",
"-DIREE_HAL_DRIVER_DEFAULTS=OFF",
"-DIREE_HAL_DRIVER_LOCAL_TASK=ON",
"-DIREE_HAL_EXECUTABLE_LOADER_DEFAULTS=OFF",
"-DIREE_HAL_EXECUTABLE_LOADER_VMVX_MODULE=ON",
"-DIREE_HAL_EXECUTABLE_PLUGIN_DEFAULTS=OFF",
// Disable all but the runtime components needed for the
// java bindings.
"-DIREE_BUILD_COMPILER=OFF",
"-DIREE_BUILD_TESTS=OFF",
"-DIREE_BUILD_SAMPLES=OFF",
"-DIREE_BUILD_PYTHON_BINDINGS=OFF",
"-DIREE_HOST_BIN_DIR=${hostInstallDir}/bin"
targets "iree-tflite-bindings"
}
}
}
sourceSets {
main {
manifest.srcFile 'org/tensorflow/lite/AndroidManifest.xml'
java {
srcDirs('org/tensorflow/lite')
exclude('tests/**') // Don't build tests into the library
}
jni.srcDirs = ['org/tensorflow/lite/native']
jniLibs.srcDirs = ['jniLibs/']
}
}
externalNativeBuild {
cmake {
version "3.13.4.0+"
path "../../../../CMakeLists.txt"
}
}
}
dependencies {
implementation 'com.android.support:support-annotations:22.2.0'
}
// Task to cmake configure the host
task cmakeConfigureHost(type: Exec) {
doFirst {
println "Configuring host tools with cmake..."
}
workingDir cmakeListDir
commandLine "cmake",
"-G" , "Ninja",
"-B", hostBuildDir ,
"-DIREE_HAL_DRIVER_DEFAULTS=OFF",
"-DIREE_HAL_DRIVER_LOCAL_TASK=ON",
"-DIREE_HAL_EXECUTABLE_LOADER_DEFAULTS=OFF",
"-DIREE_HAL_EXECUTABLE_LOADER_VMVX_MODULE=ON",
"-DIREE_HAL_EXECUTABLE_PLUGIN_DEFAULTS=OFF",
"-DIREE_BUILD_COMPILER=OFF",
"-DIREE_BUILD_TESTS=OFF ",
"-DIREE_BUILD_SAMPLES=OFF",
"-DCMAKE_INSTALL_PREFIX=${hostInstallDir}",
"."
}
// Task to cmake build the host
task cmakeBuildHost(type: Exec) {
doFirst {
println "Building host tools with cmake..."
}
workingDir cmakeListDir
commandLine "cmake", "--build", hostBuildDir, "--target", "install"
}
// Build host tools before building the app
preBuild.dependsOn cmakeBuildHost
cmakeBuildHost.dependsOn cmakeConfigureHost