From 1bda5db1c6c77bdeb59a4a77758bac28564a9594 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9F=D0=B5=D0=BB=D0=B8=D0=BF=D0=B5=D0=BD=D0=BA=D0=BE=20?= =?UTF-8?q?=D0=98=D0=B2=D0=B0=D0=BD?= Date: Sun, 19 Apr 2020 10:39:14 +0000 Subject: [PATCH] git-svn-id: svn://db.shs.com.ru/pip@1061 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5 --- cmake/DeployMacros.cmake | 52 ++++++++++++++++++++++++---------------- 1 file changed, 32 insertions(+), 20 deletions(-) diff --git a/cmake/DeployMacros.cmake b/cmake/DeployMacros.cmake index 4d8723c8..e3797458 100644 --- a/cmake/DeployMacros.cmake +++ b/cmake/DeployMacros.cmake @@ -424,6 +424,33 @@ macro(__make_copy _cmd _dirs _files _dest) endforeach() endif() endmacro() + +macro(__gather_deps _T _search_path_var _dep_libs_var _dep_libs_cs_var _added_) + get_target_property(_LL${_T} ${_T} LINK_LIBRARIES) + foreach (_L${_T} ${_LL${_T}}) + if (TARGET ${_L${_T}}) + get_target_property(_II${_T} ${_L${_T}} IMPORTED) + if (NOT _II${_T}) + #message("depend on ${_L${_T}}") + get_target_property(_LT${_T} ${_L${_T}} TYPE) + if (("x${_LT${_T}}" STREQUAL "xSHARED_LIBRARY") OR ("x${_LT${_T}}" STREQUAL "xSTATIC_LIBRARY")) + if (NOT _L${_T} IN_LIST ${_added_}) + list(APPEND ${_added_} ${_L${_T}}) + __gather_deps(${_L${_T}} ${_search_path_var} ${_dep_libs_var} ${_dep_libs_cs_var} ${_added_}) + if ("x${_LT${_T}}" STREQUAL "xSHARED_LIBRARY") + if (NOT DEFINED ANDROID_PLATFORM) + set(${_search_path_var} "${${_search_path_var}}${_dt_delim}$") + endif() + set(${_dep_libs_cs_var} "${${_dep_libs_cs_var}}${_dt_delim}$/$") + set(${_dep_libs_var} "${${_dep_libs_var}}" "$/$") + endif() + endif() + endif() + endif() + endif() + endforeach() +endmacro() + set(__macos_privacy_text "Application request permission") set(__macos_privacies "NFCReaderUsageDescription @@ -529,30 +556,15 @@ macro(deploy_target _T) set(_DEP_LIBPATH) set(_DEP_LIBS_CS) set(_DEP_LIBS) - set(_ADD_DEPS ${_PLUG_DIRS} ${_PLUG_FILES} ${_FILE_DIRS} ${_FILE_FILES}) - get_target_property(_LL ${_T} LINK_LIBRARIES) set(_add_search_path) - foreach (_L ${_LL}) - if (TARGET ${_L}) - get_target_property(_II ${_L} IMPORTED) - if (NOT _II) - #message("depend on ${_L}") - get_target_property(_LT ${_L} TYPE) - if ("x${_LT}" STREQUAL "xSHARED_LIBRARY") - if (NOT DEFINED ANDROID_PLATFORM) - set(_add_search_path "${_add_search_path}${_dt_delim}$") - endif() - set(_DEP_LIBS_CS "${_DEP_LIBS_CS};$/$") - set(_DEP_LIBS "${_DEP_LIBS}" "$/$") - endif() - endif() - endif() - endforeach() + set(_added_) + set(_ADD_DEPS ${_PLUG_DIRS} ${_PLUG_FILES} ${_FILE_DIRS} ${_FILE_FILES}) + __gather_deps(${_T} _add_search_path _DEP_LIBS _DEP_LIBS_CS _added_) foreach (_L ${DEPLOY_ADD_LIBPATH}) set(_add_search_path "${_add_search_path}${_dt_delim}${_L}") endforeach() - set(_add_search_path "${_add_search_path}") - #message("app depend libpath ${_DEP_LIBPATH}") + #set(_add_search_path "${_add_search_path}") + #message("app depend ${_T} libpath ${_add_search_path}") set(_CMD_) set(_has_deploy 0) if ("x${CMAKE_SYSTEM_NAME}" STREQUAL "xLinux")