blob: 630eb370dfd1492ddd56d8aa975eb1d0c6a59260 [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 )
32
33 add_library_ex(armnnDeserializer SHARED ${armnn_deserializer_sources})
34
35 include_directories(SYSTEM "${FLATBUFFERS_INCLUDE_PATH}")
Mike Kellyf74937e2022-05-20 17:18:59 +010036
wangg5f960d92020-08-26 01:44:32 +000037 set_target_properties(armnnDeserializer PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
38 target_include_directories(armnnDeserializer PRIVATE ../armnn)
39 target_include_directories(armnnDeserializer PRIVATE ../armnnUtils)
Mike Kellyf74937e2022-05-20 17:18:59 +010040 target_include_directories(armnnDeserializer PRIVATE ../../generated)
41
42 list(APPEND armnn_deserializer_sources
43 ArmnnSchema_generated.h
44 )
wangg5f960d92020-08-26 01:44:32 +000045
46 # System include to suppress warnings for flatbuffers generated files
47 target_include_directories(armnnDeserializer SYSTEM PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
48
49 target_link_libraries(armnnDeserializer armnn ${FLATBUFFERS_LIBRARY})
50
51 install(TARGETS armnnDeserializer
52 EXPORT armnn-targets
53 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
54 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
55 )
56 set_target_properties(armnnDeserializer PROPERTIES VERSION ${GENERIC_LIB_VERSION} SOVERSION ${GENERIC_LIB_SOVERSION} )
57endif()