aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorColm Donelan <colm.donelan@arm.com>2022-04-14 11:37:53 +0100
committerColm Donelan <colm.donelan@arm.com>2022-04-15 10:16:33 +0000
commit78d768c929a337b02b23be76571c651ac8e0be02 (patch)
tree4c94ff525ebdec1218f1b5c79a8658c354e011b6
parent8dc56289c8f6acddbbd17a7a77b06d333369a7f8 (diff)
downloadarmnn-78d768c929a337b02b23be76571c651ac8e0be02.tar.gz
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 <colm.donelan@arm.com> Change-Id: Ib123ffbd36daf7270d51be7e1124aab56cdad243
-rw-r--r--CMakeLists.txt2
-rw-r--r--shim/sl/CMakeLists.txt5
-rwxr-xr-xsrc/armnnSerializer/CMakeLists.txt13
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 "$<TARGET_OBJECTS:Armnn::armnnUtils>")
+list(APPEND armnn_support_library_sources "$<TARGET_OBJECTS:Armnn::armnnSerializerObj>")
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}