blob: e77235881f129cd88f6044edd49b98629a7a4a17 [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)
Colm Donelan718966f2022-10-10 10:06:12 +01006 # We're using NO_SYSTEM_ENVIRONMENT_PATH to prevent a system installed
7 # flatc being found and used.
wangg5f960d92020-08-26 01:44:32 +00008 find_program(FLATC flatc
9 HINTS ${FLATC_DIR}
Colm Donelan718966f2022-10-10 10:06:12 +010010 NO_SYSTEM_ENVIRONMENT_PATH
wangg5f960d92020-08-26 01:44:32 +000011 DOC "Path to 'flatc', the flatbuffers compiler")
Colm Donelan718966f2022-10-10 10:06:12 +010012
wangg5f960d92020-08-26 01:44:32 +000013 if (NOT FLATC)
14 message(SEND_ERROR "flatc not found. Specify the full path of the flatc executable with -DFLATC=<flatc path>")
Colm Donelan718966f2022-10-10 10:06:12 +010015 else()
16 message("Using flatc was from: ${FLATC}")
wangg5f960d92020-08-26 01:44:32 +000017 endif()
18
19 add_custom_command(
20 # Generate an ArmnnSchema_generated.h file if it doesn't exist, or update it when necessary otherwise
Mike Kellyf74937e2022-05-20 17:18:59 +010021 OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/../../generated/ArmnnSchema_generated.h DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../armnnSerializer/ArmnnSchema.fbs
22 COMMAND ${FLATC} -o ${CMAKE_CURRENT_SOURCE_DIR}/../../generated --cpp ${CMAKE_CURRENT_SOURCE_DIR}/../armnnSerializer/ArmnnSchema.fbs
wangg5f960d92020-08-26 01:44:32 +000023 )
Mike Kellyf74937e2022-05-20 17:18:59 +010024 set_property(SOURCE Deserializer.cpp APPEND PROPERTY OBJECT_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../../generated/ArmnnSchema_generated.h)
25 set_directory_properties(PROPERTIES ADDITIONAL_CLEAN_FILES ${CMAKE_CURRENT_SOURCE_DIR}/../../generated/)
wangg5f960d92020-08-26 01:44:32 +000026
27 set(armnn_deserializer_sources)
28 list(APPEND armnn_deserializer_sources
Finn Williams85d36712021-01-26 22:30:06 +000029 Deserializer.hpp
30 Deserializer.cpp
wangg5f960d92020-08-26 01:44:32 +000031 )
Ryan OSheaa3dc95e2023-03-20 11:10:40 +000032if(BUILD_SHARED_LIBS)
wangg5f960d92020-08-26 01:44:32 +000033 add_library_ex(armnnDeserializer SHARED ${armnn_deserializer_sources})
Ryan OSheaa3dc95e2023-03-20 11:10:40 +000034else()
35 add_library_ex(armnnDeserializer STATIC ${armnn_deserializer_sources})
36endif()
wangg5f960d92020-08-26 01:44:32 +000037
38 include_directories(SYSTEM "${FLATBUFFERS_INCLUDE_PATH}")
Mike Kellyf74937e2022-05-20 17:18:59 +010039
wangg5f960d92020-08-26 01:44:32 +000040 set_target_properties(armnnDeserializer PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
Ryan OSheaa3dc95e2023-03-20 11:10:40 +000041 set_target_properties(armnnDeserializer PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
42
wangg5f960d92020-08-26 01:44:32 +000043 target_include_directories(armnnDeserializer PRIVATE ../armnn)
44 target_include_directories(armnnDeserializer PRIVATE ../armnnUtils)
Mike Kellyf74937e2022-05-20 17:18:59 +010045 target_include_directories(armnnDeserializer PRIVATE ../../generated)
46
47 list(APPEND armnn_deserializer_sources
48 ArmnnSchema_generated.h
49 )
wangg5f960d92020-08-26 01:44:32 +000050
51 # System include to suppress warnings for flatbuffers generated files
52 target_include_directories(armnnDeserializer SYSTEM PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
53
54 target_link_libraries(armnnDeserializer armnn ${FLATBUFFERS_LIBRARY})
55
56 install(TARGETS armnnDeserializer
57 EXPORT armnn-targets
58 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
59 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
60 )
61 set_target_properties(armnnDeserializer PROPERTIES VERSION ${GENERIC_LIB_VERSION} SOVERSION ${GENERIC_LIB_SOVERSION} )
62endif()