Browse Source
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
pull/314/head
Jean-Christophe Fillion-Robin
8 years ago
No known key found for this signature in database
GPG Key ID: A50C0312039D473C
1 changed files with
8 additions and
6 deletions
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