blob: 7ba83aae1e4957ab429f6d3de6a85720f354d38e [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
Mike Kellyf74937e2022-05-20 17:18:59 +010015 OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/../../generated/ArmnnSchema_generated.h DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../armnnSerializer/ArmnnSchema.fbs
16 COMMAND ${FLATC} -o ${CMAKE_CURRENT_SOURCE_DIR}/../../generated --cpp ${CMAKE_CURRENT_SOURCE_DIR}/../armnnSerializer/ArmnnSchema.fbs
wangg5f960d92020-08-26 01:44:32 +000017 )
Mike Kellyf74937e2022-05-20 17:18:59 +010018 set_property(SOURCE Deserializer.cpp APPEND PROPERTY OBJECT_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../../generated/ArmnnSchema_generated.h)
19 set_directory_properties(PROPERTIES ADDITIONAL_CLEAN_FILES ${CMAKE_CURRENT_SOURCE_DIR}/../../generated/)
wangg5f960d92020-08-26 01:44:32 +000020
21 set(armnn_deserializer_sources)
22 list(APPEND armnn_deserializer_sources
Finn Williams85d36712021-01-26 22:30:06 +000023 Deserializer.hpp
24 Deserializer.cpp
wangg5f960d92020-08-26 01:44:32 +000025 )
26
27 add_library_ex(armnnDeserializer SHARED ${armnn_deserializer_sources})
28
29 include_directories(SYSTEM "${FLATBUFFERS_INCLUDE_PATH}")
Mike Kellyf74937e2022-05-20 17:18:59 +010030
wangg5f960d92020-08-26 01:44:32 +000031 set_target_properties(armnnDeserializer PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
32 target_include_directories(armnnDeserializer PRIVATE ../armnn)
33 target_include_directories(armnnDeserializer PRIVATE ../armnnUtils)
Mike Kellyf74937e2022-05-20 17:18:59 +010034 target_include_directories(armnnDeserializer PRIVATE ../../generated)
35
36 list(APPEND armnn_deserializer_sources
37 ArmnnSchema_generated.h
38 )
wangg5f960d92020-08-26 01:44:32 +000039
40 # System include to suppress warnings for flatbuffers generated files
41 target_include_directories(armnnDeserializer SYSTEM PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
42
43 target_link_libraries(armnnDeserializer armnn ${FLATBUFFERS_LIBRARY})
44
45 install(TARGETS armnnDeserializer
46 EXPORT armnn-targets
47 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
48 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
49 )
50 set_target_properties(armnnDeserializer PROPERTIES VERSION ${GENERIC_LIB_VERSION} SOVERSION ${GENERIC_LIB_SOVERSION} )
51endif()