Add scripts and bazel config for libedgetpu and tflite
Signed-off-by: Filip Kujawa <filip.j.kujawa@gmail.com>
Change-Id: Ice3615d4baa1c1bcc208e00ac4052d4c3b3567cb
diff --git a/WORKSPACE b/WORKSPACE
index 43120db..6ef37e6 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -1557,3 +1557,19 @@
sha256 = "2356b9d0b3be59d01e837bfbbee21de55b16232d5e00c66701c20b64ff3272e3",
url = "https://www.frc971.org/Build-Dependencies/2023_arducam_apriltag_test_images.tar.gz",
)
+
+http_archive(
+ name = "libedgetpu",
+ build_file = "//third_party:libedgetpu/libedgetpu.BUILD",
+ sha256 = "d082df79a33309f58da697cce258acca96ceb12db40660fdbf7826289e4a037c",
+ strip_prefix = "libedgetpu-bazel",
+ url = "https://www.frc971.org/Build-Dependencies/libedgetpu-1.0.tar.gz",
+)
+
+http_archive(
+ name = "libtensorflowlite",
+ build_file = "//third_party:libtensorflowlite/libtensorflowlite.BUILD",
+ sha256 = "0e3f8deac9c7cdf9aa5812ad6a87af318ed1cf08cb0c414aa494846b7fc15302",
+ strip_prefix = "tensorflow-bazel",
+ url = "https://www.frc971.org/Build-Dependencies/tensorflow-2.8.0.tar.gz",
+)
diff --git a/third_party/libedgetpu/libedgetpu.BUILD b/third_party/libedgetpu/libedgetpu.BUILD
new file mode 100644
index 0000000..0289452
--- /dev/null
+++ b/third_party/libedgetpu/libedgetpu.BUILD
@@ -0,0 +1,11 @@
+cc_library(
+ visibility = ["//visibility:public"],
+ name = "libedgetpu-k8",
+ srcs = ["k8/libedgetpu.so.1.0"]
+)
+
+cc_library(
+ visibility = ["//visibility:public"],
+ name = "libedgetpu-arm",
+ srcs = ["arm/libedgetpu.so.1.0"]
+)
\ No newline at end of file
diff --git a/third_party/libedgetpu/libedgetpu_build_script.sh b/third_party/libedgetpu/libedgetpu_build_script.sh
new file mode 100644
index 0000000..0eafccf
--- /dev/null
+++ b/third_party/libedgetpu/libedgetpu_build_script.sh
@@ -0,0 +1,16 @@
+# Clone the correct version of libedgetpu
+git clone https://github.com/google-coral/libedgetpu.git
+cd libedgetpu
+# Build libedgetpu.so.1.0 for both arm and x86
+DOCKER_CPUS="k8" DOCKER_IMAGE="ubuntu:18.04" DOCKER_TARGETS=libedgetpu make docker-build
+DOCKER_CPUS="aarch64" DOCKER_IMAGE="debian:stretch" DOCKER_TARGETS=libedgetpu make docker-build
+# Create the directory for the tarball and move the resulting files into it
+mkdir libedgetpu-bazel
+mkdir libedgetpu-bazel/arm
+mkdir libedgetpu-bazel/k8
+cp out/direct/aarch64/libedgetpu.so.1.0 libedgetpu-bazel/arm
+cp out/direct/k8/libedgetpu.so.1.0 libedgetpu-bazel/k8
+
+# Copy header files to the include directory
+mkdir libedgetpu-bazel/include
+cp -r include/* libedgetpu-bazel/include/
diff --git a/third_party/libtensorflowlite/libtensorflowlite.BUILD b/third_party/libtensorflowlite/libtensorflowlite.BUILD
new file mode 100644
index 0000000..a6b837d
--- /dev/null
+++ b/third_party/libtensorflowlite/libtensorflowlite.BUILD
@@ -0,0 +1,16 @@
+cc_library(
+ visibility = ["//visibility:public"],
+ name = "tensorflow-k8",
+ hdrs = glob(["include/**/*.h"]),
+ strip_include_prefix = "include",
+ srcs = ["k8/libtensorflowlite.so"]
+)
+
+cc_library(
+ visibility = ["//visibility:public"],
+ name = "tensorflow-arm",
+ hdrs = glob(["include/**/*.h"]),
+ strip_include_prefix = "include",
+ srcs = ["arm/libtensorflowlite.so"]
+)
+
diff --git a/third_party/libtensorflowlite/tensorflow_build_script.sh b/third_party/libtensorflowlite/tensorflow_build_script.sh
new file mode 100644
index 0000000..6c44353
--- /dev/null
+++ b/third_party/libtensorflowlite/tensorflow_build_script.sh
@@ -0,0 +1,17 @@
+# Clone and checkout the correct version of Tensorflow
+git clone https://github.com/tensorflow/tensorflow.git tensorflow_src
+cd tensorflow_src
+git checkout v2.8.0
+# Build libtensorflowlite.so for both arm and x86
+bazel build --config=elinux_aarch64 -c opt //tensorflow/lite:libtensorflowlite.so
+bazel build --config=native_arch_linux -c opt //tensorflow/lite:libtensorflowlite.so
+# Create the directory for the tarball and move the resulting files into it
+mkdir tensorflow-bazel
+mkdir tensorflow-bazel/arm
+mkdir tensorflow-bazel/k8
+cp bazel-out/aarch64-opt/bin/tensorflow/lite/libtensorflowlite.so tensorflow-bazel/arm
+cp bazel-out/k8-opt/bin/tensorflow/lite/libtensorflowlite.so tensorflow-bazel/k8
+
+# Copy header files to the include directory
+ mkdir -p tensorflow-bazel/tensorflow/core/util
+ rsync -zarv --include='*/' --include='*.h' --exclude='*' tensorflow/core/util tensorflow-bazel/tensorflow/core/util
\ No newline at end of file