| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- SET(LIB_NAME tensorflow-microlite)
- IF(TF_RECACHE)
- MESSAGE(STATUS "Rebasing TensorFlow source")
- UNSET(TF_TAG CACHE)
- UNSET(TF_COMMIT CACHE)
- ENDIF()
- IF(NOT TF_SRC)
- INCLUDE(FetchContent)
- IF(TF_TAG)
- MESSAGE(STATUS "Getting TF tag '${TF_TAG}' and not master")
- FetchContent_Declare(
- tf
- GIT_REPOSITORY https://github.com/tensorflow/tensorflow.git
- GIT_PROGRESS FALSE
- GIT_REMOTE_UPDATE_STRATEGY REBASE_CHECKOUT
- GIT_TAG ${TF_TAG}
- QUIET
- )
- ELSEIF(TF_COMMIT)
- MESSAGE(STATUS "Getting TF commit '${TF_COMMIT}' and not master")
- FetchContent_Declare(
- tf
- GIT_REPOSITORY https://github.com/tensorflow/tensorflow.git
- GIT_PROGRESS FALSE
- GIT_REMOTE_UPDATE_STRATEGY REBASE_CHECKOUT
- GIT_TAG ${TF_COMMIT}
- QUIET
- )
- ELSE()
- FetchContent_Declare(
- tf
- GIT_REPOSITORY https://github.com/tensorflow/tensorflow.git
- GIT_PROGRESS FALSE
- GIT_REMOTE_UPDATE_STRATEGY REBASE_CHECKOUT
- QUIET
- )
- ENDIF()
- FetchContent_GetProperties(tf)
- IF(NOT tf_POPULATED)
- MESSAGE(STATUS "TensorFlow sources not given/populated, fetching from GH...")
- FetchContent_Populate(tf)
- ENDIF()
- SET(TF_SRC ${tf_SOURCE_DIR})
- FetchContent_Declare(
- flatbuffers
- GIT_REPOSITORY https://github.com/google/flatbuffers.git
- GIT_PROGRESS FALSE
- QUIET
- )
- FetchContent_GetProperties(flatbuffers)
- IF(NOT flatbuffers_POPULATED)
- MESSAGE(STATUS "Now getting 'flatbuffers'...")
- FetchContent_Populate(flatbuffers)
- ENDIF()
- LIST(APPEND TFL_INC_DIRS ${flatbuffers_SOURCE_DIR}/include)
- FetchContent_Declare(
- fixedpoint
- GIT_REPOSITORY https://github.com/google/gemmlowp.git
- GIT_PROGRESS FALSE
- QUIET
- )
- FetchContent_GetProperties(fixedpoint)
- IF(NOT fixedpoint_POPULATED)
- MESSAGE(STATUS "And finaly 'fixedpoint'...")
- FetchContent_Populate(fixedpoint)
- ENDIF()
- LIST(APPEND TFL_INC_DIRS ${fixedpoint_SOURCE_DIR})
- FetchContent_Declare(
- ruy
- GIT_REPOSITORY https://github.com/google/ruy.git
- GIT_PROGRESS FALSE
- QUIET
- )
- FetchContent_GetProperties(ruy)
- IF(NOT ruy_POPULATED)
- MESSAGE(STATUS "Oh we also need 'ruy'...")
- FetchContent_Populate(ruy)
- ENDIF()
- LIST(APPEND TFL_INC_DIRS ${ruy_SOURCE_DIR})
- ENDIF()
- SET(TFL_SRC ${TF_SRC}/tensorflow/lite)
- SET(TFLM_SRC ${TFL_SRC}/micro)
- SET(TFLD_SRC ${TFL_SRC}/tools/make/downloads)
- IF(EXISTS ${TFLD_SRC}/flatbuffers/include)
- LIST(APPEND TFL_INC_DIRS ${TFLD_SRC}/flatbuffers/include)
- ENDIF()
- IF(EXISTS ${TFLD_SRC}/gemmlowp)
- LIST(APPEND ${TFLD_SRC}/gemmlowp)
- ENDIF()
- LIST(APPEND TFL_INC_DIRS
- ${TF_SRC}
- )
- FILE(GLOB TFL_ROOT_SRCS
- ${TFLM_SRC}/*.cc
- )
- FILE(GLOB TFL_KERNELS_SRCS
- ${TFLM_SRC}/kernels/*.cc
- ${TFL_SRC}/kernels/internal/quantization_util.cc
- ${TFL_SRC}/kernels/kernel_util.cc
- )
- FILE(GLOB TFL_CORE_API_SRCS
- ${TFL_SRC}/core/api/*.cc
- )
- FILE(GLOB TFL_C_SRCS
- ${TFL_SRC}/c/common.c
- )
- FILE(GLOB TFL_MEM_PLANNER_SRCS
- ${TFLM_SRC}/memory_planner/*.cc
- )
- SET(TFL_SRCS
- ${TFL_ROOT_SRCS}
- ${TFL_KERNELS_SRCS}
- ${TFL_CORE_API_SRCS}
- ${TFL_C_SRCS}
- ${TFL_MEM_PLANNER_SRCS}
- )
- LIST(FILTER TFL_SRCS EXCLUDE REGEX "([a-z0-9_]+_test.cc)$")
- ADD_LIBRARY(${LIB_NAME} STATIC
- ${TFL_SRCS}
- )
- TARGET_INCLUDE_DIRECTORIES(${LIB_NAME} PUBLIC
- ${TFL_INC_DIRS}
- )
- TARGET_COMPILE_DEFINITIONS(${LIB_NAME} PUBLIC
- TF_LITE_USE_GLOBAL_MAX
- TF_LITE_USE_GLOBAL_MIN
- TF_LITE_USE_GLOBAL_CMATH_FUNCTIONS
- TF_LITE_STATIC_MEMORY
- TFLITE_EMULATE_FLOAT
- "$<$<CONFIG:RELEASE>:TF_LITE_STRIP_ERROR_STRINGS>"
- )
- SET(TFLite_INCLUDE_DIRS
- ${TFL_INC_DIRS}
- )
- SET(TFLite_SOURCES
- ${TFL_SRCS}
- )
- INCLUDE(FindPackageHandleStandardArgs)
- FIND_PACKAGE_HANDLE_STANDARD_ARGS(TFLite DEFAULT_MSG TFLite_INCLUDE_DIRS TFLite_SOURCES)
|