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