From e4a4c88d2341dd5bce20ca543fae8447282d2dc0 Mon Sep 17 00:00:00 2001 From: Ivan Pelipenko Date: Mon, 7 Sep 2020 14:38:11 +0300 Subject: [PATCH] FindMinGW patch DeployMacros dependencies patch, add MinGW "lib" to search path --- DeployMacros.cmake | 22 +++++++++++++--------- FindMinGW.cmake | 5 +++-- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/DeployMacros.cmake b/DeployMacros.cmake index afc68e3..f103de2 100644 --- a/DeployMacros.cmake +++ b/DeployMacros.cmake @@ -479,27 +479,31 @@ 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}}) - set(_lib _L${_T}) + set(_lib ${_L${_T}}) if (TARGET ${_lib}) get_target_property(_AT ${_lib} ALIASED_TARGET) - if (NOT "x${_AT}" STREQUAL "x") + #message("${_lib} aliased = ${_AT}") + if (_AT) set(_lib ${_AT}) endif() - get_target_property(_II${_T} ${_lib} IMPORTED) - if (NOT _II${_T}) + get_target_property(_II ${_lib} IMPORTED) + #message("${_lib} imported = ${_II}") + if ((NOT _II) AND (TARGET ${_lib})) #message("depend on ${_lib}") - get_target_property(_LT${_T} ${_lib} TYPE) - if (("x${_LT${_T}}" STREQUAL "xSHARED_LIBRARY") OR ("x${_LT${_T}}" STREQUAL "xSTATIC_LIBRARY")) + get_target_property(_LT ${_lib} TYPE) + #message("${_lib} type = ${_LT}") + if (("x${_LT}" STREQUAL "xSHARED_LIBRARY") OR ("x${_LT}" STREQUAL "xSTATIC_LIBRARY")) if (NOT _lib IN_LIST ${_added_}) list(APPEND ${_added_} ${_lib}) - __gather_deps(${_lib} ${_search_path_var} ${_dep_libs_var} ${_dep_libs_cs_var} ${_added_}) - if ("x${_LT${_T}}" STREQUAL "xSHARED_LIBRARY") + if ("x${_LT}" STREQUAL "xSHARED_LIBRARY") if (NOT DEFINED ANDROID_PLATFORM) set(${_search_path_var} "${${_search_path_var}}${_dt_delim}$") endif() + #message("add dep $/$") set(${_dep_libs_cs_var} "${${_dep_libs_cs_var}}${_dt_delim}$/$") set(${_dep_libs_var} "${${_dep_libs_var}}" "$/$") endif() + __gather_deps(${_lib} ${_search_path_var} ${_dep_libs_var} ${_dep_libs_cs_var} ${_added_}) endif() endif() endif() @@ -874,7 +878,7 @@ macro(deploy_target _T) # gather dir ${_CMD_} - COMMAND ${PIP_DEPLOY_TOOL} ${_VERB} ${_OPTIONS} -W "\"${CMAKE_OBJDUMP}\"" -P windows,minimal -S windows -q "\"${Qt5_ROOT}\"" -s "\"${CMAKE_PREFIX_PATH}/bin${_dt_delim}${MINGW_BIN}${_add_search_path}\"" -o ${_AGD} -p ${_AGD} "\"${_AGD}${_T}.exe\"" ${_ADD_DEPS} + COMMAND ${PIP_DEPLOY_TOOL} ${_VERB} ${_OPTIONS} -W "\"${CMAKE_OBJDUMP}\"" -P windows,minimal -S windows -q "\"${Qt5_ROOT}\"" -s "\"${CMAKE_PREFIX_PATH}/bin${_dt_delim}${MINGW_BIN}${_add_search_path}${_dt_delim}${MINGW_LIB}\"" -o ${_AGD} -p ${_AGD} "\"${_AGD}${_T}.exe\"" ${_ADD_DEPS} # zip COMMAND cd "\"${_DEPLOY_DIR}\"" "&&" zip -q -r "\"${_DESTINATION}/${_zip_name}\"" "\"${_TV}_win_${MY_ARCH}\"" COMMENT "Generating ${_zip_name}" diff --git a/FindMinGW.cmake b/FindMinGW.cmake index ea0e43a..0bcea1d 100644 --- a/FindMinGW.cmake +++ b/FindMinGW.cmake @@ -12,8 +12,9 @@ if(${MINGW}) PATH_SUFFIXES include) #message(STATUS "Find MinGW = ${MINGW_INCLUDE}") - find_library(MINGW_LIB m HINTS ${MINGW_BIN}/../lib ${MINGW_INCLUDE}/../lib) - get_filename_component(MINGW_LIB ${MINGW_LIB} PATH) + find_library(_mingw_lib_m m HINTS ${MINGW_BIN}/../lib ${MINGW_INCLUDE}/../lib) + get_filename_component(_mingw_lib ${_mingw_lib_m} PATH) + set(MINGW_LIB "${_mingw_lib}" CACHE PATH "" FORCE) if (NOT _MGW_MSG) set(_MGW_MSG 1 CACHE BOOL "msg_mingw" FORCE) message(STATUS "Found MinGW binary path = ${MINGW_BIN}")