diff options
author | Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com> | 2017-08-21 20:18:49 (GMT) |
---|---|---|
committer | Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com> | 2017-08-21 20:18:49 (GMT) |
commit | 33161f489c5d90c314335205fbc1cec7cba6eae8 (patch) | |
tree | f8eff0f1b8f79b190fd9ef7ab64ccdc452c21759 | |
parent | 9a0a6f91ae5c8e25197d50e7045b6c4418f607b2 (diff) | |
download | CMake-33161f489c5d90c314335205fbc1cec7cba6eae8.zip CMake-33161f489c5d90c314335205fbc1cec7cba6eae8.tar.gz CMake-33161f489c5d90c314335205fbc1cec7cba6eae8.tar.bz2 |
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
-rw-r--r-- | Modules/FindQt4.cmake | 14 |
1 files 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 |