CMake: Explicitly search for X11 with proper dependency tracking
Replace the hardcoded find_package(X11) with qt_find_package in both the compositor and client projects. This should ensure proper dependency tracking. Calling qt_find_package(X11) is now necessary, because QtGui doesn't publically link against X11 anymore, which means we have to do it explicitly for qtwayland. The relevant qtbase change is 69004cb2900dcfc530e1e2efb783f559661a8a50 The calls need to be protected by an if(NOT TARGET) to prevent configuration issues in static builds, where the dependency does get propagated. This amends commit dfaf374a3d8d34b9aa90bfc4c5e074f9fd8b9981. Change-Id: Ia39e1e78cd0af386d7b48cd1922887289823c1fa Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
This commit is contained in:
parent
42d9e19e40
commit
5e927fb8d6
@ -17,7 +17,14 @@ if((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS)
|
||||
qt_find_package(Wayland PROVIDED_TARGETS Wayland::Egl MODULE_NAME waylandclient QMAKE_LIB wayland-egl)
|
||||
endif()
|
||||
qt_find_package(XComposite PROVIDED_TARGETS PkgConfig::XComposite MODULE_NAME waylandclient QMAKE_LIB xcomposite)
|
||||
|
||||
# special case begin
|
||||
# X11 is not a public dependency of QtGui anymore, so we need to find it manually in a shared build.
|
||||
# In a static build the dependency is still propagated, so check for the target existence to prevent
|
||||
# the 'Attempt to promote imported target "X11::X11" to global scope' issue.
|
||||
if(NOT TARGET X11::X11)
|
||||
qt_find_package(X11 PROVIDED_TARGETS X11::X11 MODULE_NAME gui QMAKE_LIB xlib)
|
||||
endif()
|
||||
# special case end
|
||||
|
||||
#### Tests
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user