blob: 198a9356b5fb33bb7db88466e7ee03ac5a28174f [file] [log] [blame]
wangg5f960d92020-08-26 01:44:32 +00001#
2# Copyright © 2020 Arm Ltd and Contributors. All rights reserved.
3# SPDX-License-Identifier: MIT
4#
5if(BUILD_ARMNN_DESERIALIZER)
6 find_program(FLATC flatc
7 HINTS ${FLATC_DIR}
8 DOC "Path to 'flatc', the flatbuffers compiler")
9 if (NOT FLATC)
10 message(SEND_ERROR "flatc not found. Specify the full path of the flatc executable with -DFLATC=<flatc path>")
11 endif()
12
13 add_custom_command(
14 # Generate an ArmnnSchema_generated.h file if it doesn't exist, or update it when necessary otherwise
15 OUTPUT ArmnnSchema_generated.h DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../armnnSerializer/ArmnnSchema.fbs
16 COMMAND ${FLATC} -o ${CMAKE_CURRENT_BINARY_DIR} --cpp ${CMAKE_CURRENT_SOURCE_DIR}/../armnnSerializer/ArmnnSchema.fbs
17 )
18
19 set(armnn_deserializer_sources)
20 list(APPEND armnn_deserializer_sources
Finn Williams85d36712021-01-26 22:30:06 +000021 ArmnnSchema_generated.h
22 Deserializer.hpp
23 Deserializer.cpp
wangg5f960d92020-08-26 01:44:32 +000024 )
25
26 add_library_ex(armnnDeserializer SHARED ${armnn_deserializer_sources})
27
28 include_directories(SYSTEM "${FLATBUFFERS_INCLUDE_PATH}")
29 set_target_properties(armnnDeserializer PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
30 target_include_directories(armnnDeserializer PRIVATE ../armnn)
31 target_include_directories(armnnDeserializer PRIVATE ../armnnUtils)
32
33 # System include to suppress warnings for flatbuffers generated files
34 target_include_directories(armnnDeserializer SYSTEM PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
35
36 target_link_libraries(armnnDeserializer armnn ${FLATBUFFERS_LIBRARY})
37
38 install(TARGETS armnnDeserializer
39 EXPORT armnn-targets
40 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
41 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
42 )
43 set_target_properties(armnnDeserializer PROPERTIES VERSION ${GENERIC_LIB_VERSION} SOVERSION ${GENERIC_LIB_SOVERSION} )
44endif()