@@ -2972,7 +2972,7 @@ (define-public tensorflow
(define-public tensorflow-lite
(package
(name "tensorflow-lite")
- (version "2.12.1")
+ (version "2.13.0")
(source
(origin
(method git-fetch)
@@ -2982,11 +2982,15 @@ (define-public tensorflow-lite
(file-name (git-file-name name version))
(sha256
(base32
- "0jkgljdagdqllnxygl35r5bh3f9qmbczymfj357gm9krh59g2kmd"))))
+ "07g6vlrs0aayrg2mfdl15gxg5dy103wx2xlqkran15dib40nkbj6"))
+ (patches
+ (search-patches
+ ;; patch to disable local cmake build code for 3rdparty
+ ;; componentas
+ "tensorflow-lite-disable-local-cmake-3rdparty-components.patch"))))
(build-system cmake-build-system)
(arguments
(list
- #:tests? #false ;tests are not building now
#:build-type "Release"
#:modules '((ice-9 match)
(guix build utils)
@@ -3005,11 +3009,11 @@ (define-public tensorflow-lite
;; TODO: turn on Farmhash
;;"-DSYSTEM_FARMHASH=ON"
- (string-append "-Dabsl_DIR=" #$(this-package-input "abseil-cpp")
+ (string-append "-Dabseil-cpp_DIR=" #$(this-package-input "abseil-cpp")
"/lib/cmake/absl")
(string-append "-DEigen3_DIR=" #$(this-package-input "eigen")
"/share/eigen3/cmake")
- (string-append "-DFlatBuffers_DIR="
+ (string-append "-Dflatbuffers_DIR="
#$(this-package-input "flatbuffers-shared")
"/lib/cmake/flatbuffers")
(string-append "-DNEON_2_SSE_DIR=" #$(this-package-input "neon2sse")
@@ -3025,6 +3029,9 @@ (define-public tensorflow-lite
"-DTFLITE_ENABLE_XNNPACK=OFF"
;; Don't fetch the sources. We have these already
+ "-Dabseil-cpp_POPULATED=TRUE"
+ "-Dflatbuffers_POPULATED=TRUE"
+ "-Dgemmlowp_POPULATED=TRUE"
"-Degl_headers_POPULATED=TRUE"
"-Dfp16_headers_POPULATED=TRUE"
"-Dopencl_headers_POPULATED=TRUE"
@@ -3037,7 +3044,10 @@ (define-public tensorflow-lite
"-DFFT2D_SOURCE_DIR=/tmp/fft2d"
"-DFARMHASH_SOURCE_DIR=/tmp/farmhash"
- "-Dgemmlowp_SOURCE_DIR=/tmp/gemmlowp")
+ (string-append "-Dabseil-cpp_ROOT=" #$(this-package-input "abseil-cpp"))
+ (string-append "-Dflatbuffers_ROOT=" #$(this-package-input "flatbuffers-shared"))
+ (string-append "-Dgemmlowp_ROOT=" #$(this-package-input "gemmlowp"))
+ )
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'chdir
@@ -3069,8 +3079,10 @@ (define-public tensorflow-lite
(invoke "tar" "--strip-components=1"
"-xf" (assoc-ref inputs "fft2d-src")))
- (copy-recursively (assoc-ref inputs "gemmlowp-src")
- "/tmp/gemmlowp/")))
+ ;(copy-recursively (assoc-ref inputs "gemmlowp-src")
+ ; "/tmp/gemmlowp/")
+
+ ))
(add-after 'build 'build-shared-library
(lambda* (#:key configure-flags #:allow-other-keys)
@@ -3096,12 +3108,12 @@ (define-public tensorflow-lite
(when tests?
(invoke "ctest" "-L" "plain")))))))
(inputs
- `(("abseil-cpp" ,abseil-cpp-20200923.3)
+ `(("abseil-cpp" ,abseil-cpp)
("cpuinfo" ,cpuinfo)
("eigen" ,eigen)
("fp16" ,fp16)
("flatbuffers-shared" ,flatbuffers-next-shared)
- ;;("gemmlowp" ,gemmlowp) ; TODO
+ ("gemmlowp" ,gemmlowp)
("mesa-headers" ,mesa-headers)
("neon2sse" ,neon2sse)
("nsync" ,nsync)
@@ -3117,21 +3129,8 @@ (define-public tensorflow-lite
(native-inputs
`(("pkg-config" ,pkg-config)
("googletest" ,googletest)
- ("gemmlowp-src"
- ;; The commit hash is taken from
- ;; "tensorflow/lite/tools/cmake/modules/gemmlowp.cmake".
- ,(let ((commit "fda83bdc38b118cc6b56753bd540caa49e570745"))
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/google/gemmlowp")
- (commit commit)))
- (file-name (git-file-name "gemmlowp" (string-take commit 8)))
- (sha256
- (base32
- "1sbp8kmr2azwlvfbzryy1frxi99jhsh1nc93bdbxdf8zdgpv0kxl")))))
("farmhash-src"
- ,(let ((commit "816a4ae622e964763ca0862d9dbd19324a1eaf45"))
+ ,(let ((commit "0d859a811870d10f53a594927d0d0b97573ad06d"))
(origin
(method url-fetch)
(uri (string-append
new file mode 100644
@@ -0,0 +1,62 @@
+diff --git a/tensorflow/lite/CMakeLists.txt b/tensorflow/lite/CMakeLists.txt
+index 0476170e075..90abea00e8c 100644
+--- a/tensorflow/lite/CMakeLists.txt
++++ b/tensorflow/lite/CMakeLists.txt
+@@ -564,7 +564,7 @@ set(_ALL_TFLITE_HDRS ${_ALL_TFLITE_SRCS})
+ list(FILTER _ALL_TFLITE_HDRS INCLUDE REGEX ".*\\.h$")
+ target_include_directories(tensorflow-lite
+ PUBLIC $<BUILD_INTERFACE:${TENSORFLOW_SOURCE_DIR}> $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
+- ${CMAKE_BINARY_DIR}/gemmlowp
++ ${gemmlowp_ROOT}/include/gemmlowp
+ )
+ target_link_libraries(tensorflow-lite
+ PUBLIC
+diff --git a/tensorflow/lite/kernels/CMakeLists.txt b/tensorflow/lite/kernels/CMakeLists.txt
+index 57ed10d7e64..b45b5d1df82 100644
+--- a/tensorflow/lite/kernels/CMakeLists.txt
++++ b/tensorflow/lite/kernels/CMakeLists.txt
+@@ -25,11 +25,13 @@ set(SCHEMA_GENERATED_PATH ${SCHEMA_GENERATED_ROOT}/tensorflow/lite/schema/mutabl
+ set(SCHEMA_GENERATED_FILE ${SCHEMA_GENERATED_PATH}/schema_generated.h)
+
+ # Use the util function in flatbuffer to generate the schema header.
++list(APPEND CMAKE_MODULE_PATH "${flatbuffers_DIR}")
+ include(BuildFlatBuffers)
+
+ # For cross-compilation purposes a natively compiled 'flatc' compiler is required
+ if(${CMAKE_CROSSCOMPILING})
+ set(FLATC_PATHS
++ ${flatbuffers_ROOT}/bin
+ ${TFLITE_HOST_TOOLS_DIR}
+ ${TFLITE_HOST_TOOLS_DIR}/bin
+ ${TFLITE_HOST_TOOLS_DIR}/flatbuffers-flatc/bin
+@@ -43,7 +45,7 @@ if(${CMAKE_CROSSCOMPILING})
+ set(FLATBUFFERS_FLATC_EXECUTABLE ${FLATC_BIN})
+ endif()
+ else()
+- set(FLATBUFFERS_FLATC_EXECUTABLE ${CMAKE_BINARY_DIR}/flatbuffers-flatc/bin/flatc)
++ set(FLATBUFFERS_FLATC_EXECUTABLE ${flatbuffers_ROOT}/bin/flatc)
+ endif()
+
+ set(FLATBUFFERS_FLATC_SCHEMA_EXTRA_ARGS
+@@ -55,7 +57,7 @@ build_flatbuffers(
+ "${SCHEMA_FILE}"
+ ""
+ mutable_schema_file
+- flatbuffers-flatc
++ ${FLATBUFFERS_FLATC_EXECUTABLE}
+ "${SCHEMA_GENERATED_PATH}"
+ ""
+ ""
+diff --git a/tensorflow/lite/tools/cmake/modules/Findgemmlowp.cmake b/tensorflow/lite/tools/cmake/modules/Findgemmlowp.cmake
+index 70331ad0a69..a9bd8a0f3bd 100644
+--- a/tensorflow/lite/tools/cmake/modules/Findgemmlowp.cmake
++++ b/tensorflow/lite/tools/cmake/modules/Findgemmlowp.cmake
+@@ -18,7 +18,7 @@
+ include(gemmlowp)
+ if(gemmlowp_POPULATED)
+ set(GEMMLOWP_FOUND TRUE)
+- get_target_property(GEMMLOWP_INCLUDE_DIRS gemmlowp INTERFACE_DIRECTORIES)
++ #get_target_property(GEMMLOWP_INCLUDE_DIRS gemmlowp INTERFACE_DIRECTORIES)
+ set(GEMMLOWP_LIBRARIES
+ gemmlowp
+ gemmlowp_fixedpoint