From 78d768c929a337b02b23be76571c651ac8e0be02 Mon Sep 17 00:00:00 2001 From: Colm Donelan Date: Thu, 14 Apr 2022 11:37:53 +0100 Subject: IVGCVSW-6770 Build arm-armnn-sl and armnn into shared object * Add a OBJECT library of the serializer. * Make armnnUtils an OBJECT library. * Modify arm-armnn-sl to OBJECT use libraries of armnnUtils and the serializer. Signed-off-by: Colm Donelan Change-Id: Ib123ffbd36daf7270d51be7e1124aab56cdad243 --- CMakeLists.txt | 2 +- shim/sl/CMakeLists.txt | 5 +++-- src/armnnSerializer/CMakeLists.txt | 13 +++++++++++++ 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3ba5985efd..a6ddbb878d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -114,7 +114,7 @@ list(APPEND armnnUtils_sources src/armnnUtils/Transpose.cpp ) -add_library_ex(armnnUtils STATIC ${armnnUtils_sources}) +add_library_ex(armnnUtils OBJECT ${armnnUtils_sources}) target_include_directories(armnnUtils PRIVATE src/backends) if(BUILD_ONNX_PARSER) diff --git a/shim/sl/CMakeLists.txt b/shim/sl/CMakeLists.txt index 654a599d37..6c2d393fb9 100644 --- a/shim/sl/CMakeLists.txt +++ b/shim/sl/CMakeLists.txt @@ -177,10 +177,11 @@ list(APPEND armnn_support_library_sources canonical/SystemPropertiesUtils.hpp support_library_service.cpp) +list(APPEND armnn_support_library_sources "$") +list(APPEND armnn_support_library_sources "$") add_library(armnn_support_library SHARED ${armnn_support_library_sources}) + target_link_libraries(armnn_support_library PUBLIC Armnn::Armnn) -target_link_libraries(armnn_support_library PUBLIC Armnn::armnnUtils) -target_link_libraries(armnn_support_library PUBLIC Armnn::armnnSerializer) target_link_libraries(armnn_support_library PRIVATE thirdparty_headers) target_link_libraries(armnn_support_library PRIVATE neuralnetworks_types_cl) diff --git a/src/armnnSerializer/CMakeLists.txt b/src/armnnSerializer/CMakeLists.txt index 9c90af2e11..b95e6f1cdf 100755 --- a/src/armnnSerializer/CMakeLists.txt +++ b/src/armnnSerializer/CMakeLists.txt @@ -29,18 +29,31 @@ if(BUILD_ARMNN_SERIALIZER) ../armnnDeserializer/Deserializer.cpp ) + # We're going to export both an OBJECT library and a SHARED library here. + # In some instances it's easier to include the serializer directly into + # the target executable or library rather than have yet another .so. + add_library(armnnSerializerObj OBJECT ${armnn_serializer_sources}) add_library_ex(armnnSerializer SHARED ${armnn_serializer_sources}) include_directories(SYSTEM "${FLATBUFFERS_INCLUDE_PATH}") set_target_properties(armnnSerializer PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}) + target_include_directories(armnnSerializerObj PRIVATE ../armnn) + target_include_directories(armnnSerializerObj PRIVATE ../armnnUtils) target_include_directories(armnnSerializer PRIVATE ../armnn) target_include_directories(armnnSerializer PRIVATE ../armnnUtils) # System include to suppress warnings for flatbuffers generated files + target_include_directories(armnnSerializerObj SYSTEM PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) target_include_directories(armnnSerializer SYSTEM PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) target_link_libraries(armnnSerializer armnn ${FLATBUFFERS_LIBRARY}) + install(TARGETS armnnSerializerObj + EXPORT armnn-targets + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + ) + install(TARGETS armnnSerializer EXPORT armnn-targets LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} -- cgit v1.2.1