blob: de0fd340958cad72934d366829af2f534cc46803 [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.0.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_DRIVERS_TO_BUILD=VMVX",
// Disable all but the runtime components needed for the
// java bindings.
"-DIREE_BUILD_COMPILER=OFF",
"-DIREE_ENABLE_MLIR=OFF",
"-DIREE_BUILD_TESTS=OFF",
"-DIREE_BUILD_SAMPLES=OFF",
"-DIREE_BUILD_PYTHON_BINDINGS=OFF",
"-DIREE_HOST_BINARY_ROOT=${hostInstallDir}"
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']
}
}
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_TARGET_BACKENDS_TO_BUILD=vmvx",
"-DIREE_HAL_DRIVERS_TO_BUILD=vmvx",
"-DIREE_BUILD_COMPILER=ON",
"-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