blob: 582013178d830f43a5312b2eebf27b232458d2af [file] [log] [blame]
Ruomei Yandb7c3912019-03-08 17:50:25 +00001#
2# Copyright © 2017 Arm Ltd. All rights reserved.
3# SPDX-License-Identifier: MIT
4#
5if(BUILD_ARMNN_SERIALIZER)
Matthew Bentham68947182019-06-10 17:11:31 +01006 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
Matteo Martincigh286080f2019-05-31 13:02:11 +010013 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 ArmnnSchema.fbs
Matthew Bentham68947182019-06-10 17:11:31 +010016 COMMAND ${FLATC} -o ${CMAKE_CURRENT_BINARY_DIR} --cpp ${CMAKE_CURRENT_SOURCE_DIR}/ArmnnSchema.fbs
Ruomei Yandb7c3912019-03-08 17:50:25 +000017 )
18
19 set(armnn_serializer_sources)
20 list(APPEND armnn_serializer_sources
21 ../../include/armnnSerializer/ISerializer.hpp
22 ../../include/armnnDeserializer/IDeserializer.hpp
23 ArmnnSchema_generated.h
24 Serializer.hpp
25 Serializer.cpp
26 SerializerUtils.hpp
27 SerializerUtils.cpp
28 ../armnnDeserializer/Deserializer.hpp
29 ../armnnDeserializer/Deserializer.cpp
30 )
31
Jim Flynn870b96c2022-03-25 21:24:56 +000032 if(BUILD_BARE_METAL)
33 add_library_ex(armnnSerializer STATIC ${armnn_serializer_sources})
34 else()
35 add_library_ex(armnnSerializer SHARED ${armnn_serializer_sources})
36 endif()
Ruomei Yandb7c3912019-03-08 17:50:25 +000037
38 include_directories(SYSTEM "${FLATBUFFERS_INCLUDE_PATH}")
39 set_target_properties(armnnSerializer PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
40 target_include_directories(armnnSerializer PRIVATE ../armnn)
41 target_include_directories(armnnSerializer PRIVATE ../armnnUtils)
42
43 # System include to suppress warnings for flatbuffers generated files
44 target_include_directories(armnnSerializer SYSTEM PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
45
46 target_link_libraries(armnnSerializer armnn ${FLATBUFFERS_LIBRARY})
Matthew Benthama7b79282019-06-03 13:00:50 +010047
48 install(TARGETS armnnSerializer
Derek Lambertieac4adb2020-08-25 13:05:59 +010049 EXPORT armnn-targets
50 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
51 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
52 )
Matteo Martincighbccc3452019-10-18 14:59:19 +010053 set_target_properties(armnnSerializer PROPERTIES VERSION ${GENERIC_LIB_VERSION} SOVERSION ${GENERIC_LIB_SOVERSION} )
Matthew Benthama7b79282019-06-03 13:00:50 +010054endif()