blob: 6096d1bf8c9c8436c67f52f9c5092f974c238935 [file] [log] [blame]
#
# Copyright © 2017, 2023 Arm Ltd. All rights reserved.
# SPDX-License-Identifier: MIT
#
if(BUILD_TF_LITE_PARSER)
set(armnn_tf_lite_parser_sources)
list(APPEND armnn_tf_lite_parser_sources
../../include/armnnTfLiteParser/ITfLiteParser.hpp
../../include/armnnTfLiteParser/Version.hpp
TfLiteParser.hpp
TfLiteParser.cpp
)
if(EXECUTE_NETWORK_STATIC)
add_library_ex(armnnTfLiteParser OBJECT ${armnn_tf_lite_parser_sources})
else()
add_library_ex(armnnTfLiteParser SHARED ${armnn_tf_lite_parser_sources})
endif()
include_directories(SYSTEM "${FLATBUFFERS_INCLUDE_PATH}")
set_target_properties(armnnTfLiteParser PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
target_include_directories(armnnTfLiteParser PRIVATE ../armnn)
target_include_directories(armnnTfLiteParser PRIVATE ../armnnUtils)
target_include_directories(armnnTfLiteParser SYSTEM PRIVATE "${TF_LITE_SCHEMA_INCLUDE_PATH}")
# using the armnn/delegate/cmake/Modules/FindTfLiteSrc.cmake to find the TfLite sources
# so that we can use the tensorflow/lite/version.h to determine which version of
# tensorflow lite we are compiling against
find_package(TfLiteSrc REQUIRED MODULE)
# Various tflite header files are not warning clean
# We can't change compilation flags on header files directly, so we need to add them to an interface library first
add_library(tflite_version_headers INTERFACE)
target_include_directories(tflite_version_headers INTERFACE $<BUILD_INTERFACE:${TfLite_INCLUDE_DIR}>
$<INSTALL_INTERFACE:include/tflite_version_headers>)
if(COMPILER_IS_GNU_LIKE)
target_compile_options(tflite_version_headers INTERFACE -Wno-conversion
-Wno-sign-conversion
-Wno-unused-parameter
-Wno-unused-function)
endif()
# If user has explicitly specified flatbuffers lib then use that,
# otherwise search for it based on FLATBUFFERS_BUILD_DIR
if (FLATBUFFERS_LIBRARY)
target_link_libraries(armnnTfLiteParser
armnn
tflite_version_headers
${FLATBUFFERS_LIBRARY})
else()
# Use PATH_SUFFIXES to help find separate libs for debug/release on Windows builds
find_library(FLATBUFFERS_LIBRARY_DEBUG NAMES flatbuffers
HINTS ${FLATBUFFERS_BUILD_DIR}
PATH_SUFFIXES "Debug")
find_library(FLATBUFFERS_LIBRARY_RELEASE NAMES flatbuffers
HINTS ${FLATBUFFERS_BUILD_DIR}
PATH_SUFFIXES "Release")
target_link_libraries(armnnTfLiteParser
armnn
tflite_version_headers
debug ${FLATBUFFERS_LIBRARY_DEBUG}
optimized ${FLATBUFFERS_LIBRARY_RELEASE})
endif()
set_target_properties(armnnTfLiteParser PROPERTIES VERSION ${TFLITE_PARSER_LIB_VERSION} SOVERSION ${TFLITE_PARSER_LIB_SOVERSION} )
install(TARGETS armnnTfLiteParser
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
endif()