mirror of
https://github.com/reactos/CMake.git
synced 2024-11-28 05:50:42 +00:00
FindwxWidgets: Verify existence of libraries reported by wx-config
When the Ubuntu package `libwxgtk3-dev` is not installed, FindwxWidgets succeeds even the required libraries are not actually found. The reason for that is that `wx-config` does not perform any kind of check and uses hard-coded values. This affects e.g. KiCAD build process and makes it fail with a confusing error message [1]. The solution is to check for presence of every library file obtained from `wx-config`. [1] https://bugs.launchpad.net/kicad/+bug/1630020
This commit is contained in:
parent
e155fba644
commit
e8b77084df
@ -893,6 +893,28 @@ else()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Check that all libraries are present, as wx-config does not check it
|
||||
set(_wx_lib_missing "")
|
||||
foreach(_wx_lib_ ${wxWidgets_LIBRARIES})
|
||||
if("${_wx_lib_}" MATCHES "^-l(.*)")
|
||||
set(_wx_lib_name "${CMAKE_MATCH_1}")
|
||||
unset(_wx_lib_found CACHE)
|
||||
find_library(_wx_lib_found NAMES ${_wx_lib_name} HINTS ${wxWidgets_LIBRARY_DIRS})
|
||||
if(_wx_lib_found STREQUAL _wx_lib_found-NOTFOUND)
|
||||
list(APPEND _wx_lib_missing ${_wx_lib_name})
|
||||
endif()
|
||||
unset(_wx_lib_found CACHE)
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
if (_wx_lib_missing)
|
||||
string(REPLACE ";" " " _wx_lib_missing "${_wx_lib_missing}")
|
||||
DBG_MSG_V("wxWidgets not found due to following missing libraries: ${_wx_lib_missing}")
|
||||
set(wxWidgets_FOUND FALSE)
|
||||
unset(wxWidgets_LIBRARIES)
|
||||
endif()
|
||||
unset(_wx_lib_missing)
|
||||
|
||||
# Check if a specfic version was requested by find_package().
|
||||
if(wxWidgets_FOUND)
|
||||
find_file(_filename wx/version.h PATHS ${wxWidgets_INCLUDE_DIRS} NO_DEFAULT_PATH)
|
||||
|
Loading…
Reference in New Issue
Block a user