Install only proper GNA library files (#11243)

This commit is contained in:
Ilya Lavrenov 2022-03-30 08:58:31 +03:00 committed by GitHub
parent f6e5ec9684
commit 9f923ba39f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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()