diff options
Diffstat (limited to 'infra/nnfw/cmake')
-rw-r--r-- | infra/nnfw/cmake/CfgOptionFlags.cmake | 4 | ||||
-rw-r--r-- | infra/nnfw/cmake/packages/EigenConfig.cmake | 2 | ||||
-rw-r--r-- | infra/nnfw/cmake/packages/TensorFlowLite-2.2.0Config.cmake | 92 | ||||
-rw-r--r-- | infra/nnfw/cmake/packages/TensorFlowLite-2.3.0/CMakeLists.txt (renamed from infra/nnfw/cmake/packages/TensorFlowLite-2.2.0/CMakeLists.txt) | 83 | ||||
-rw-r--r-- | infra/nnfw/cmake/packages/TensorFlowLite-2.3.0Config.cmake | 100 |
5 files changed, 151 insertions, 130 deletions
diff --git a/infra/nnfw/cmake/CfgOptionFlags.cmake b/infra/nnfw/cmake/CfgOptionFlags.cmake index d1395f871..3c6b7d960 100644 --- a/infra/nnfw/cmake/CfgOptionFlags.cmake +++ b/infra/nnfw/cmake/CfgOptionFlags.cmake @@ -23,7 +23,7 @@ CMAKE_DEPENDENT_OPTION(BUILD_RUNTIME_NNAPI_TEST "Build Runtime NN API Generated OFF) option(BUILD_RUNTIME_NNFW_API_TEST "Build Runtime NNFW API Tests" ON) option(BUILD_TFLITE_RUN "Build tflite-run" ON) -option(BUILD_TFLITE_RUN_2_2_0 "Build tflite-run 2.2.0" OFF) +option(BUILD_TFLITE_VANILLA_RUN "Build tflite-vanilla-run" OFF) option(BUILD_TFLITE_BENCHMARK_MODEL "Build tflite benchmark model" OFF) option(BUILD_NNAPI_TEST "Build nnapi_test" ON) option(BUILD_NNPACKAGE_RUN "Build nnpackge_run" ON) @@ -70,7 +70,7 @@ option(DOWNLOAD_BOOST "Download boost source" OFF) option(DOWNLOAD_RUY "Download ruy source" ON) option(BUILD_BOOST "Build boost source" OFF) option(BUILD_TENSORFLOW_LITE "Build TensorFlow Lite from the downloaded source" ON) -option(BUILD_TENSORFLOW_LITE_2_2_0 "Build TensorFlow Lite from the downloaded source" OFF) +option(BUILD_TENSORFLOW_LITE_2_3_0 "Build TensorFlow Lite 2.3.0 from the downloaded source" OFF) option(BUILD_GTEST "Download and build Google Test" ON) option(BUILD_ARMCOMPUTE "Build ARM Compute from the downloaded source" ON) option(BUILD_RUY "Build ruy library from the downloaded source" ON) diff --git a/infra/nnfw/cmake/packages/EigenConfig.cmake b/infra/nnfw/cmake/packages/EigenConfig.cmake index f37d653cf..e71830a16 100644 --- a/infra/nnfw/cmake/packages/EigenConfig.cmake +++ b/infra/nnfw/cmake/packages/EigenConfig.cmake @@ -1,5 +1,5 @@ function(_Eigen_import) - nnas_find_package(TensorFlowEigenSource-2.3.0-rc0 QUIET) + nnas_find_package(TensorFlowEigenSource EXACT 2.3.0 QUIET) if(NOT TensorFlowEigenSource_FOUND) set(Eigen_FOUND FALSE PARENT_SCOPE) diff --git a/infra/nnfw/cmake/packages/TensorFlowLite-2.2.0Config.cmake b/infra/nnfw/cmake/packages/TensorFlowLite-2.2.0Config.cmake deleted file mode 100644 index e698235f4..000000000 --- a/infra/nnfw/cmake/packages/TensorFlowLite-2.2.0Config.cmake +++ /dev/null @@ -1,92 +0,0 @@ -if(BUILD_TENSORFLOW_LITE_2_2_0) - macro(return_unless VAR) - if(NOT ${VAR}) - message("${VAR} NOT TRUE") - set(TensorFlowLite_2_2_0_FOUND PARENT_SCOPE) - return() - endif(NOT ${VAR}) - endmacro(return_unless) - - nnas_include(ExternalSourceTools) - nnas_include(OptionTools) - - # Below urls come from https://github.com/tensorflow/tensorflow/blob/v2.2.0/tensorflow/lite/tools/make/Makefile - - set(absl_url "https://github.com/abseil/abseil-cpp/archive/43ef2148c0936ebf7cb4be6b19927a9d9d145b8f.tar.gz") - ExternalSource_Download("tflite220_Absl" ${absl_url}) - set(TFLite220AbslSource_DIR "${tflite220_Absl_SOURCE_DIR}") - if (NOT TFLite220AbslSource_DIR STREQUAL "") - set(TFLite220AbslSource_FOUND TRUE) - endif() - return_unless(TFLite220AbslSource_FOUND) - - set(eigen_url "https://gitlab.com/libeigen/eigen/-/archive/52a2fbbb008a47c5e3fb8ac1c65c2feecb0c511c/eigen-52a2fbbb008a47c5e3fb8ac1c65c2feecb0c511c.tar.gz") - ExternalSource_Download("tflite220_Eigen" ${eigen_url}) - set(TFLite220EigenSource_DIR "${tflite220_Eigen_SOURCE_DIR}") - if (NOT TFLite220EigenSource_DIR STREQUAL "") - set(TFLite220EigenSource_FOUND TRUE) - endif() - return_unless(TFLite220EigenSource_FOUND) - - set(farmhash_url "https://storage.googleapis.com/mirror.tensorflow.org/github.com/google/farmhash/archive/816a4ae622e964763ca0862d9dbd19324a1eaf45.tar.gz") - ExternalSource_Download("tflite220_Farmhash" ${farmhash_url}) - set(TFLite220FarmhashSource_DIR "${tflite220_Farmhash_SOURCE_DIR}") - if (NOT TFLite220FarmhashSource_DIR STREQUAL "") - set(TFLite220FarmhashSource_FOUND TRUE) - endif() - return_unless(TFLite220FarmhashSource_FOUND) - - set(fft2d_url "https://storage.googleapis.com/mirror.tensorflow.org/www.kurims.kyoto-u.ac.jp/~ooura/fft2d.tgz") - ExternalSource_Download("tflite220_FFT2D" ${fft2d_url}) - set(TFLite220FFT2DSource_DIR "${tflite220_FFT2D_SOURCE_DIR}") - if (NOT TFLite220FFT2DSource_DIR STREQUAL "") - set(TFLite220FFT2DSource_FOUND TRUE) - endif() - return_unless(TFLite220FFT2DSource_FOUND) - - set(flatbuffers_url "https://storage.googleapis.com/mirror.tensorflow.org/github.com/google/flatbuffers/archive/v1.11.0.tar.gz") - ExternalSource_Download("tflite220_FlatBuffers" ${flatbuffers_url}) - set(TFLite220FlatBuffersSource_DIR "${tflite220_FlatBuffers_SOURCE_DIR}") - if (NOT TFLite220FlatBuffersSource_DIR STREQUAL "") - set(TFLite220FlatBuffersSource_FOUND TRUE) - endif() - return_unless(TFLite220FlatBuffersSource_FOUND) - - set(fp16_url "https://github.com/Maratyszcza/FP16/archive/febbb1c163726b5db24bed55cc9dc42529068997.zip") - ExternalSource_Download("tflite220_FP16" ${fp16_url}) - set(TFLite220FP16Source_DIR "${tflite220_FP16_SOURCE_DIR}") - if (NOT TFLite220FP16Source_DIR STREQUAL "") - set(TFLite220FP16Source_FOUND TRUE) - endif() - return_unless(TFLite220FP16Source_FOUND) - - set(gemmlowp_url "https://storage.googleapis.com/mirror.tensorflow.org/github.com/google/gemmlowp/archive/12fed0cd7cfcd9e169bf1925bc3a7a58725fdcc3.zip") - ExternalSource_Download("tflite220_GEMMLowp" ${gemmlowp_url}) - set(TFLite220GEMMLowpSource_DIR "${tflite220_GEMMLowp_SOURCE_DIR}") - if (NOT TFLite220GEMMLowpSource_DIR STREQUAL "") - set(TFLite220GEMMLowpSource_FOUND TRUE) - endif() - return_unless(TFLite220GEMMLowpSource_FOUND) - - set(neon2sse_url "https://github.com/intel/ARM_NEON_2_x86_SSE/archive/master.zip") - ExternalSource_Download("tflite220_NEON2SSE" ${neon2sse_url}) - set(TFLite220NEON2SSESource_DIR "${tflite220_NEON2SSE_SOURCE_DIR}") - if (NOT TFLite220NEON2SSESource_DIR STREQUAL "") - set(TFLite220NEON2SSESource_FOUND TRUE) - endif() - return_unless(TFLite220NEON2SSESource_FOUND) - - set(tensorflow_url "https://github.com/tensorflow/tensorflow/archive/v2.2.0.tar.gz") - ExternalSource_Download("tflite220_TensorFlow" ${tensorflow_url}) - set(TFLite220TensorFlowSource_DIR "${tflite220_TensorFlow_SOURCE_DIR}") - if (NOT TFLite220TensorFlowSource_DIR STREQUAL "") - set(TFLite220TensorFlowSource_FOUND TRUE) - endif() - return_unless(TFLite220TensorFlowSource_FOUND) - - nnas_include(ExternalProjectTools) - add_extdirectory("${CMAKE_CURRENT_LIST_DIR}/TensorFlowLite-2.2.0" tflite-2.2.0) - - set(TensorFlowLite_2_2_0_FOUND TRUE) - return() -endif() diff --git a/infra/nnfw/cmake/packages/TensorFlowLite-2.2.0/CMakeLists.txt b/infra/nnfw/cmake/packages/TensorFlowLite-2.3.0/CMakeLists.txt index 8e7f78eb1..20547b92d 100644 --- a/infra/nnfw/cmake/packages/TensorFlowLite-2.2.0/CMakeLists.txt +++ b/infra/nnfw/cmake/packages/TensorFlowLite-2.3.0/CMakeLists.txt @@ -1,8 +1,8 @@ -# Reference: https://github.com/tensorflow/tensorflow/blob/v2.2.0/tensorflow/lite/tools/make/Makefile +# Reference: https://github.com/tensorflow/tensorflow/blob/v2.3.0/tensorflow/lite/tools/make/Makefile # -# Tensorflow Lite library 2.2.0 +# Tensorflow Lite library 2.3.0 # -set(TENSORFLOW_LITE_BASE ${TFLite220TensorFlowSource_DIR}/tensorflow/lite) +set(TENSORFLOW_LITE_BASE ${TFLiteVanillaTensorFlowSource_DIR}/tensorflow/lite) file(GLOB TFLITE_CORE_SRCS "${TENSORFLOW_LITE_BASE}/*.c" "${TENSORFLOW_LITE_BASE}/*.cc" @@ -18,8 +18,7 @@ file(GLOB TFLITE_API_SRCS "${TENSORFLOW_LITE_BASE}/core/api/*.c" list(APPEND TFLITE_PROFILING_SRCS "${TENSORFLOW_LITE_BASE}/profiling/memory_info.cc") list(APPEND TFLITE_PROFILING_SRCS "${TENSORFLOW_LITE_BASE}/profiling/time.cc") -file(GLOB TFLITE_EXPERIMENTAL_SRCS "${TENSORFLOW_LITE_BASE}/experimental/resource/*.cc" - "${TENSORFLOW_LITE_BASE}/experimental/ruy/*.cc") +file(GLOB TFLITE_EXPERIMENTAL_SRCS "${TENSORFLOW_LITE_BASE}/experimental/resource/*.cc") file(GLOB TFLITE_SPARSITY_SRCS "${TENSORFLOW_LITE_BASE}/tools/optimize/sparsity/*.cc") @@ -32,24 +31,37 @@ list(APPEND TFLITE_SRCS ${TFLITE_EXPERIMENTAL_SRCS}) list(APPEND TFLITE_SRCS ${TFLITE_SPARSITY_SRCS}) # externals -list(APPEND TFLITE_SRCS "${TFLite220FarmhashSource_DIR}/src/farmhash.cc") -list(APPEND TFLITE_SRCS "${TFLite220FFT2DSource_DIR}/fftsg.c") -list(APPEND TFLITE_SRCS "${TFLite220FFT2DSource_DIR}/fftsg2d.c") -list(APPEND TFLITE_SRCS "${TFLite220FlatBuffersSource_DIR}/src/util.cpp") +list(APPEND TFLITE_SRCS "${TFLiteVanillaFarmhashSource_DIR}/src/farmhash.cc") +list(APPEND TFLITE_SRCS "${TFLiteVanillaFFT2DSource_DIR}/fftsg.c") +list(APPEND TFLITE_SRCS "${TFLiteVanillaFFT2DSource_DIR}/fftsg2d.c") +list(APPEND TFLITE_SRCS "${TFLiteVanillaFlatBuffersSource_DIR}/src/util.cpp") # externals - absl -file(GLOB_RECURSE ABSL_SRCS "${TFLite220AbslSource_DIR}/absl/*.cc") -file(GLOB_RECURSE ABSL_EXCLS "${TFLite220AbslSource_DIR}/absl/*test*.cc" - "${TFLite220AbslSource_DIR}/absl/*benchmark*.cc" - "${TFLite220AbslSource_DIR}/absl/synchronization/*.cc" - "${TFLite220AbslSource_DIR}/absl/debugging/*.cc" - "${TFLite220AbslSource_DIR}/absl/hash/*.cc" - "${TFLite220AbslSource_DIR}/absl/flags/*.cc") +file(GLOB_RECURSE ABSL_SRCS "${TFLiteVanillaAbslSource_DIR}/absl/*.cc") +file(GLOB_RECURSE ABSL_EXCLS "${TFLiteVanillaAbslSource_DIR}/absl/*test*.cc" + "${TFLiteVanillaAbslSource_DIR}/absl/*benchmark*.cc" + "${TFLiteVanillaAbslSource_DIR}/absl/synchronization/*.cc" + "${TFLiteVanillaAbslSource_DIR}/absl/debugging/*.cc" + "${TFLiteVanillaAbslSource_DIR}/absl/hash/*.cc" + "${TFLiteVanillaAbslSource_DIR}/absl/flags/*.cc" + "${TFLiteVanillaAbslSource_DIR}/absl/random/*.cc") list(REMOVE_ITEM ABSL_SRCS ${ABSL_EXCLS}) list(APPEND TFLITE_SRCS ${ABSL_SRCS}) +# externals - ruy +file(GLOB RUY_SRCS "${TFLiteVanillaRuySource_DIR}/ruy/*.cc") +file(GLOB_RECURSE RUY_EXCLS "${TFLiteVanillaRuySource_DIR}/ruy/*test*.cc" + "${TFLiteVanillaRuySource_DIR}/ruy/*benchmark*.cc" + "${TFLiteVanillaRuySource_DIR}/ruy/*example*.cc") +list(REMOVE_ITEM RUY_SRCS ${RUY_EXCLS}) +# Temporary fix for ruy compilation error. +# TODO(b/158800055): Remove this hack once the ruy version is correctly bumped. +list(REMOVE_ITEM RUY_SRCS "${TFLiteVanillaRuySource_DIR}/ruy/prepare_packed_matrices.cc") +list(APPEND TFLITE_SRCS ${RUY_SRCS}) + + # Build with mmap? true -# caution: v2.2.0's Makefile has wrong code on this part. This is fixed on master branch. +# caution: v2.3.0's Makefile has wrong code on this part. This is fixed on master branch. set(BUILD_WITH_MMAP TRUE) if(${BUILD_WITH_MMAP}) list(REMOVE_ITEM TFLITE_SRCS "${TENSORFLOW_LITE_BASE}/mmap_allocation_disabled.cc") @@ -86,25 +98,26 @@ file(GLOB_RECURSE TFLITE_EXCLS "${TENSORFLOW_LITE_BASE}/*test*.cc" list(REMOVE_ITEM TFLITE_SRCS ${TFLITE_EXCLS}) # include headers -list(APPEND TFLITE_INCLUDES "${TFLite220TensorFlowSource_DIR}") -list(APPEND TFLITE_INCLUDES "${TFLite220EigenSource_DIR}") -list(APPEND TFLITE_INCLUDES "${TFLite220AbslSource_DIR}") -list(APPEND TFLITE_INCLUDES "${TFLite220GEMMLowpSource_DIR}") -list(APPEND TFLITE_INCLUDES "${TFLite220NEON2SSESource_DIR}") -list(APPEND TFLITE_INCLUDES "${TFLite220FarmhashSource_DIR}/src") -list(APPEND TFLITE_INCLUDES "${TFLite220FlatBuffersSource_DIR}/include") -list(APPEND TFLITE_INCLUDES "${TFLite220FP16Source_DIR}/include") - -add_library(tensorflow-lite-2.2.0 STATIC ${TFLITE_SRCS}) -target_include_directories(tensorflow-lite-2.2.0 SYSTEM PUBLIC ${TFLITE_INCLUDES}) -target_compile_definitions(tensorflow-lite-2.2.0 PUBLIC "GEMMLOWP_ALLOW_SLOW_SCALAR_FALLBACK -DTFLITE_WITH_RUY -DTFLITE_WITH_RUY_GEMV") -set_property(TARGET tensorflow-lite-2.2.0 PROPERTY POSITION_INDEPENDENT_CODE ON) -target_link_libraries(tensorflow-lite-2.2.0 eigen ${LIB_PTHREAD} dl) -if(${BUILD_WITH_NNAPI}) - target_link_libraries(tensorflow-lite-2.2.0 rt) +list(APPEND TFLITE_INCLUDES "${TFLiteVanillaTensorFlowSource_DIR}") +list(APPEND TFLITE_INCLUDES "${TFLiteVanillaEigenSource_DIR}") +list(APPEND TFLITE_INCLUDES "${TFLiteVanillaAbslSource_DIR}") +list(APPEND TFLITE_INCLUDES "${TFLiteVanillaGEMMLowpSource_DIR}") +list(APPEND TFLITE_INCLUDES "${TFLiteVanillaNEON2SSESource_DIR}") +list(APPEND TFLITE_INCLUDES "${TFLiteVanillaFarmhashSource_DIR}/src") +list(APPEND TFLITE_INCLUDES "${TFLiteVanillaFlatBuffersSource_DIR}/include") +list(APPEND TFLITE_INCLUDES "${TFLiteVanillaFP16Source_DIR}/include") +list(APPEND TFLITE_INCLUDES "${TFLiteVanillaRuySource_DIR}") + +add_library(tensorflow-lite-2.3.0 STATIC ${TFLITE_SRCS}) +target_include_directories(tensorflow-lite-2.3.0 SYSTEM PUBLIC ${TFLITE_INCLUDES}) +target_compile_definitions(tensorflow-lite-2.3.0 PUBLIC "GEMMLOWP_ALLOW_SLOW_SCALAR_FALLBACK -DTFLITE_WITH_RUY -DTFLITE_WITH_RUY_GEMV") +set_property(TARGET tensorflow-lite-2.3.0 PROPERTY POSITION_INDEPENDENT_CODE ON) +target_link_libraries(tensorflow-lite-2.3.0 eigen ${LIB_PTHREAD} dl) +if(NOT ANDROID AND ${BUILD_WITH_NNAPI}) + target_link_libraries(tensorflow-lite-2.3.0 rt) endif() if(ANDROID) - target_link_libraries(tensorflow-lite-2.2.0 log) - target_include_directories(tensorflow-lite-2.2.0 PUBLIC "${NDK_DIR}/..") + target_link_libraries(tensorflow-lite-2.3.0 log) + target_include_directories(tensorflow-lite-2.3.0 PUBLIC "${NDK_DIR}/..") endif() diff --git a/infra/nnfw/cmake/packages/TensorFlowLite-2.3.0Config.cmake b/infra/nnfw/cmake/packages/TensorFlowLite-2.3.0Config.cmake new file mode 100644 index 000000000..d00ca96a6 --- /dev/null +++ b/infra/nnfw/cmake/packages/TensorFlowLite-2.3.0Config.cmake @@ -0,0 +1,100 @@ +if(BUILD_TENSORFLOW_LITE_2_3_0) + macro(return_unless VAR) + if(NOT ${VAR}) + message("${VAR} NOT TRUE") + set(TensorFlowLite_2_3_0_FOUND PARENT_SCOPE) + return() + endif(NOT ${VAR}) + endmacro(return_unless) + + nnas_include(ExternalSourceTools) + nnas_include(OptionTools) + + # Below urls come from https://github.com/tensorflow/tensorflow/blob/v2.3.0/tensorflow/lite/tools/make/Makefile + + set(absl_url "https://github.com/abseil/abseil-cpp/archive/df3ea785d8c30a9503321a3d35ee7d35808f190d.tar.gz") + ExternalSource_Download("TFLiteVanilla_Absl" ${absl_url}) + set(TFLiteVanillaAbslSource_DIR "${TFLiteVanilla_Absl_SOURCE_DIR}") + if (NOT TFLiteVanillaAbslSource_DIR STREQUAL "") + set(TFLiteVanillaAbslSource_FOUND TRUE) + endif() + return_unless(TFLiteVanillaAbslSource_FOUND) + + set(eigen_url "https://gitlab.com/libeigen/eigen/-/archive/386d809bde475c65b7940f290efe80e6a05878c4/eigen-386d809bde475c65b7940f290efe80e6a05878c4.tar.gz") + ExternalSource_Download("TFLiteVanilla_Eigen" ${eigen_url}) + set(TFLiteVanillaEigenSource_DIR "${TFLiteVanilla_Eigen_SOURCE_DIR}") + if (NOT TFLiteVanillaEigenSource_DIR STREQUAL "") + set(TFLiteVanillaEigenSource_FOUND TRUE) + endif() + return_unless(TFLiteVanillaEigenSource_FOUND) + + set(farmhash_url "https://storage.googleapis.com/mirror.tensorflow.org/github.com/google/farmhash/archive/816a4ae622e964763ca0862d9dbd19324a1eaf45.tar.gz") + ExternalSource_Download("TFLiteVanilla_Farmhash" ${farmhash_url}) + set(TFLiteVanillaFarmhashSource_DIR "${TFLiteVanilla_Farmhash_SOURCE_DIR}") + if (NOT TFLiteVanillaFarmhashSource_DIR STREQUAL "") + set(TFLiteVanillaFarmhashSource_FOUND TRUE) + endif() + return_unless(TFLiteVanillaFarmhashSource_FOUND) + + set(fft2d_url "https://storage.googleapis.com/mirror.tensorflow.org/github.com/petewarden/OouraFFT/archive/v1.0.tar.gz") + ExternalSource_Download("TFLiteVanilla_FFT2D" ${fft2d_url}) + set(TFLiteVanillaFFT2DSource_DIR "${TFLiteVanilla_FFT2D_SOURCE_DIR}") + if (NOT TFLiteVanillaFFT2DSource_DIR STREQUAL "") + set(TFLiteVanillaFFT2DSource_FOUND TRUE) + endif() + return_unless(TFLiteVanillaFFT2DSource_FOUND) + + set(flatbuffers_url "https://storage.googleapis.com/mirror.tensorflow.org/github.com/google/flatbuffers/archive/v1.12.0.tar.gz") + ExternalSource_Download("TFLiteVanilla_FlatBuffers" ${flatbuffers_url}) + set(TFLiteVanillaFlatBuffersSource_DIR "${TFLiteVanilla_FlatBuffers_SOURCE_DIR}") + if (NOT TFLiteVanillaFlatBuffersSource_DIR STREQUAL "") + set(TFLiteVanillaFlatBuffersSource_FOUND TRUE) + endif() + return_unless(TFLiteVanillaFlatBuffersSource_FOUND) + + set(fp16_url "https://github.com/Maratyszcza/FP16/archive/4dfe081cf6bcd15db339cf2680b9281b8451eeb3.zip") + ExternalSource_Download("TFLiteVanilla_FP16" ${fp16_url}) + set(TFLiteVanillaFP16Source_DIR "${TFLiteVanilla_FP16_SOURCE_DIR}") + if (NOT TFLiteVanillaFP16Source_DIR STREQUAL "") + set(TFLiteVanillaFP16Source_FOUND TRUE) + endif() + return_unless(TFLiteVanillaFP16Source_FOUND) + + set(gemmlowp_url "https://storage.googleapis.com/mirror.tensorflow.org/github.com/google/gemmlowp/archive/fda83bdc38b118cc6b56753bd540caa49e570745.zip") + ExternalSource_Download("TFLiteVanilla_GEMMLowp" ${gemmlowp_url}) + set(TFLiteVanillaGEMMLowpSource_DIR "${TFLiteVanilla_GEMMLowp_SOURCE_DIR}") + if (NOT TFLiteVanillaGEMMLowpSource_DIR STREQUAL "") + set(TFLiteVanillaGEMMLowpSource_FOUND TRUE) + endif() + return_unless(TFLiteVanillaGEMMLowpSource_FOUND) + + set(neon2sse_url "https://github.com/intel/ARM_NEON_2_x86_SSE/archive/1200fe90bb174a6224a525ee60148671a786a71f.tar.gz") + ExternalSource_Download("TFLiteVanilla_NEON2SSE" ${neon2sse_url}) + set(TFLiteVanillaNEON2SSESource_DIR "${TFLiteVanilla_NEON2SSE_SOURCE_DIR}") + if (NOT TFLiteVanillaNEON2SSESource_DIR STREQUAL "") + set(TFLiteVanillaNEON2SSESource_FOUND TRUE) + endif() + return_unless(TFLiteVanillaNEON2SSESource_FOUND) + + set(tensorflow_url "https://github.com/tensorflow/tensorflow/archive/v2.3.0.tar.gz") + ExternalSource_Download("TFLiteVanilla_TensorFlow" ${tensorflow_url}) + set(TFLiteVanillaTensorFlowSource_DIR "${TFLiteVanilla_TensorFlow_SOURCE_DIR}") + if (NOT TFLiteVanillaTensorFlowSource_DIR STREQUAL "") + set(TFLiteVanillaTensorFlowSource_FOUND TRUE) + endif() + return_unless(TFLiteVanillaTensorFlowSource_FOUND) + + set(ruy_url "https://github.com/google/ruy/archive/34ea9f4993955fa1ff4eb58e504421806b7f2e8f.zip") + ExternalSource_Download("TFLiteVanilla_Ruy" ${ruy_url}) + set(TFLiteVanillaRuySource_DIR "${TFLiteVanilla_Ruy_SOURCE_DIR}") + if (NOT TFLiteVanillaRuySource_DIR STREQUAL "") + set(TFLiteVanillaRuySource_FOUND TRUE) + endif() + return_unless(TFLiteVanillaRuySource_FOUND) + + nnas_include(ExternalProjectTools) + add_extdirectory("${CMAKE_CURRENT_LIST_DIR}/TensorFlowLite-2.3.0" tflite-2.3.0) + + set(TensorFlowLite_2_3_0_FOUND TRUE) + return() +endif() |