From 33161f489c5d90c314335205fbc1cec7cba6eae8 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Fillion-Robin Date: Mon, 21 Aug 2017 16:18:49 -0400 Subject: FindQt4: Do not assume all libraries are frameworks Since on MacOSX not all modules are available as "framework" (e.g libQtUiTools.a), the assumption made in "FindQt4.cmake" is not always valid and systematically setting the imported libraries location to framework location is incorrect. This commit increases the robustness of the logic by first checking if the location exists. Fixes #17195 --- Modules/FindQt4.cmake | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/Modules/FindQt4.cmake b/Modules/FindQt4.cmake index b0c49e5..c67d0be 100644 --- a/Modules/FindQt4.cmake +++ b/Modules/FindQt4.cmake @@ -355,19 +355,21 @@ macro (_QT4_ADJUST_LIB_VARS _camelCaseBasename) if (QT_${basename}_LIBRARY_RELEASE) set_property(TARGET Qt4::${_camelCaseBasename} APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) - if(QT_USE_FRAMEWORKS) - set_property(TARGET Qt4::${_camelCaseBasename} PROPERTY IMPORTED_LOCATION_RELEASE "${QT_${basename}_LIBRARY_RELEASE}/${_camelCaseBasename}" ) + set(_location "${QT_${basename}_LIBRARY_RELEASE}") + if(QT_USE_FRAMEWORKS AND EXISTS ${_location}/${_camelCaseBasename}) + set_property(TARGET Qt4::${_camelCaseBasename} PROPERTY IMPORTED_LOCATION_RELEASE "${_location}/${_camelCaseBasename}" ) else() - set_property(TARGET Qt4::${_camelCaseBasename} PROPERTY IMPORTED_LOCATION_RELEASE "${QT_${basename}_LIBRARY_RELEASE}" ) + set_property(TARGET Qt4::${_camelCaseBasename} PROPERTY IMPORTED_LOCATION_RELEASE "${_location}" ) endif() endif () if (QT_${basename}_LIBRARY_DEBUG) set_property(TARGET Qt4::${_camelCaseBasename} APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) - if(QT_USE_FRAMEWORKS) - set_property(TARGET Qt4::${_camelCaseBasename} PROPERTY IMPORTED_LOCATION_DEBUG "${QT_${basename}_LIBRARY_DEBUG}/${_camelCaseBasename}" ) + set(_location "${QT_${basename}_LIBRARY_DEBUG}") + if(QT_USE_FRAMEWORKS AND EXISTS ${_location}/${_camelCaseBasename}) + set_property(TARGET Qt4::${_camelCaseBasename} PROPERTY IMPORTED_LOCATION_DEBUG "${_location}/${_camelCaseBasename}" ) else() - set_property(TARGET Qt4::${_camelCaseBasename} PROPERTY IMPORTED_LOCATION_DEBUG "${QT_${basename}_LIBRARY_DEBUG}" ) + set_property(TARGET Qt4::${_camelCaseBasename} PROPERTY IMPORTED_LOCATION_DEBUG "${_location}" ) endif() endif () set_property(TARGET Qt4::${_camelCaseBasename} PROPERTY -- cgit v0.12