diff --git a/src/plugins/intel_gna/CMakeLists.txt b/src/plugins/intel_gna/CMakeLists.txt index a9be3a5ad6b..1641aec0183 100644 --- a/src/plugins/intel_gna/CMakeLists.txt +++ b/src/plugins/intel_gna/CMakeLists.txt @@ -71,10 +71,28 @@ set_target_properties(${TARGET_NAME} ${TARGET_NAME}_test_static # install -file(GLOB_RECURSE source_list "${libGNA_LIBRARIES_BASE_PATH}/*${CMAKE_SHARED_LIBRARY_SUFFIX}*") -install(FILES ${source_list} - DESTINATION ${IE_CPACK_RUNTIME_PATH} - COMPONENT gna) +file(GLOB_RECURSE gna_libraries "${libGNA_LIBRARIES_BASE_PATH}/*${CMAKE_SHARED_LIBRARY_SUFFIX}*") +set(gna_library_installed OFF) + +foreach(gna_lib IN LISTS gna_libraries) + # install only versioned files like libgna.so.N or libgna.so.N.M + # and don't install global symlink libgna.so. Exceptions: + # 1. On Windows we don't have libraries versioning and need to install all .dlls + # 2. For case of static libraries we also need to install .so since it's required for linkage with final application + if(gna_lib MATCHES "^.*${CMAKE_SHARED_LIBRARY_SUFFIX}(\.[0-9]+)+$" OR + WIN32 OR NOT BUILD_SHARED_LIBS) + install(FILES ${gna_lib} + DESTINATION ${IE_CPACK_RUNTIME_PATH} + COMPONENT gna) + set(gna_library_installed ON) + endif() +endforeach() + +if(NOT gna_library_installed) + message(FATAL_ERROR "Failed to install GNA library (available libraries: ${gna_libraries})") +endif() + +# additional install rules for case of static libraries if(NOT BUILD_SHARED_LIBS) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/libGNAConfig.cmake ${CMAKE_BINARY_DIR} COPYONLY) @@ -82,9 +100,10 @@ if(NOT BUILD_SHARED_LIBS) DESTINATION runtime/cmake COMPONENT gna) + # install .lib file on Windows if(WIN32) - file(GLOB_RECURSE source_list "${libGNA_LIBRARIES_BASE_PATH}/*${CMAKE_STATIC_LIBRARY_SUFFIX}") - install(FILES ${source_list} + file(GLOB_RECURSE gna_libraries "${libGNA_LIBRARIES_BASE_PATH}/*${CMAKE_STATIC_LIBRARY_SUFFIX}") + install(FILES ${gna_libraries} DESTINATION ${IE_CPACK_LIBRARY_PATH} COMPONENT gna) endif()