diff --git a/tensorflow/examples/android/BUILD b/tensorflow/examples/android/BUILD index 3901e870f41..83b9dc49a36 100644 --- a/tensorflow/examples/android/BUILD +++ b/tensorflow/examples/android/BUILD @@ -69,9 +69,7 @@ android_binary( # (and corresponding Activities in source) to reduce APK size. assets = [ "//tensorflow/examples/android/assets:asset_files", - "@inception5h//:model_files", - "@mobile_multibox//:model_files", - "@stylize//:model_files", + ":external_assets", ], assets_dir = "", custom_package = "org.tensorflow.demo", @@ -88,6 +86,15 @@ android_binary( ], ) +filegroup( + name = "external_assets", + srcs = [ + "@inception5h//:model_files", + "@mobile_multibox//:model_files", + "@stylize//:model_files", + ], +) + filegroup( name = "all_files", srcs = glob( diff --git a/tensorflow/examples/android/build.gradle b/tensorflow/examples/android/build.gradle index 019314e7e04..ebfaf6539bf 100644 --- a/tensorflow/examples/android/build.gradle +++ b/tensorflow/examples/android/build.gradle @@ -41,6 +41,9 @@ if (buildWithMake) { // automatically. def makeNdkRoot = System.getenv('NDK_ROOT') +// Location of model files required as assets +def externalModelData = '../../../bazel-tensorflow/external' + // If building with Bazel, this is the location of the bazel binary. // NOTE: Bazel does not yet support building for Android on Windows, // so in this case the Makefile build must be used as described above. @@ -124,6 +127,11 @@ task buildNativeMake(type: Exec) { //, '-T' // Uncomment to skip protobuf and speed up subsequent builds. } +task buildExternalAssets(type: Exec) { + commandLine bazelLocation, 'build', '//tensorflow/examples/android:external_assets' + outputs.files(externalModelData) +} + task copyNativeLibs(type: Copy) { from demoLibPath from inferenceLibPath @@ -133,7 +141,22 @@ task copyNativeLibs(type: Copy) { fileMode 0644 } -assemble.dependsOn copyNativeLibs -afterEvaluate { - assembleDebug.dependsOn copyNativeLibs +task copyExternalAssets(type: Copy) { + from file(externalModelData).listFiles() + include '*.pb' + include '*.txt' + include 'thumbnails/*.jpg' + into 'assets' + fileMode 0644 + dependsOn buildExternalAssets +} + +def copyTasks = [copyNativeLibs] +if (!buildWithMake) { + // copyExternalAssets uses bazel, so only run it when requested. + copyTasks.add(copyExternalAssets) +} +assemble.dependsOn copyTasks +afterEvaluate { + assembleDebug.dependsOn copyTasks }