CMake: Fix X11 and xkb library usage in the platform projects

This is a prerequisite for building the bundled 3rd party libraries.

Because the feature evaluation will be moved into src/CMakeLists.txt,
some of the X11 packages were found in the src dir, and then a second
time inside the x11-related projects.
These qt_find_package calls in the x11 related projects tried to
promote the imported targets to global, which failed, because they were
created in a different directory scope.

To avoid this, the special case qt_find_package calls are removed from
the nested projects.

Also, fix the mapping of some of the x11 libraries to be correct
- xkbcommon_x11 was incorrectly mapped to XKB::XKB instead of the
  xkb common x11 library
- xlib was mapped to xcb, whereas X11 is the correct CMake target

Change-Id: I30781b2ecbdd478c98419b14baa0492037e49c61
Reviewed-by: Leander Beernaert <leander.beernaert@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
bb10
Alexandru Croitor 2020-02-24 14:24:25 +01:00
parent 8ab59fd8b3
commit 160184d6a5
8 changed files with 15 additions and 30 deletions

View File

@ -36,7 +36,7 @@ qt_extend_target(EglSupport CONDITION QT_FEATURE_egl_x11
SOURCES
qxlibeglintegration.cpp qxlibeglintegration_p.h
LIBRARIES
X11::XCB
X11::X11
)
qt_extend_target(EglSupport CONDITION NOT QT_FEATURE_egl_x11

View File

@ -39,7 +39,7 @@ qt_extend_target(EglSupport CONDITION QT_FEATURE_egl_x11
SOURCES
qxlibeglintegration.cpp qxlibeglintegration_p.h
LIBRARIES
X11::XCB
X11::X11
)
qt_extend_target(EglSupport CONDITION NOT QT_FEATURE_egl_x11

View File

@ -14,7 +14,7 @@ qt_add_module(GlxSupport
PUBLIC_LIBRARIES
Qt::CorePrivate
Qt::GuiPrivate
X11::XCB
X11::X11
)
#### Keys ignored in scope 1:.:.:glxconvenience.pro:<TRUE>:

View File

@ -16,7 +16,7 @@ qt_add_module(GlxSupport
PUBLIC_LIBRARIES
Qt::CorePrivate
Qt::GuiPrivate
X11::X11 # special case
X11::X11
)
#### Keys ignored in scope 1:.:.:glxconvenience.pro:<TRUE>:

View File

@ -20,6 +20,7 @@ qt_add_plugin(QEglFSX11IntegrationPlugin
Qt::EglFSDeviceIntegrationPrivate
Qt::Gui
Qt::GuiPrivate
X11::X11
X11::XCB
XCB::XCB
)

View File

@ -39,6 +39,7 @@ qt_add_module(XcbQpa
INCLUDE_DIRECTORIES
gl_integrations
PUBLIC_LIBRARIES
PkgConfig::XKB_COMMON_X11
Qt::CorePrivate
Qt::EdidSupportPrivate
Qt::FontDatabaseSupportPrivate

View File

@ -1,27 +1,5 @@
# Generated from xcb.pro.
# begin special case:
qt_find_package(X11_XCB
PROVIDED_TARGETS
X11::XCB
)
qt_find_package(X11
PROVIDED_TARGETS
X11::X11
)
qt_find_package(XCB)
qt_find_package(XKB)
qt_find_package(PkgConfig)
qt_find_package(WrapFreetype)
qt_find_package(GLIB2
PROVIDED_TARGETS
GLIB2::GLIB2
)
qt_find_package(XRender PROVIDED_TARGETS PkgConfig::XRender)
qt_find_package(XKB_COMMON_X11 PROVIDED_TARGETS PkgConfig::XKB_COMMON_X11)
# end special case:
#####################################################################
## XcbQpa Module:
#####################################################################
@ -61,6 +39,7 @@ qt_add_module(XcbQpa
INCLUDE_DIRECTORIES
gl_integrations
PUBLIC_LIBRARIES
PkgConfig::XKB_COMMON_X11
Qt::CorePrivate
Qt::EdidSupportPrivate
Qt::FontDatabaseSupportPrivate
@ -68,7 +47,6 @@ qt_add_module(XcbQpa
Qt::ServiceSupportPrivate
Qt::ThemeSupportPrivate
Qt::XkbCommonSupportPrivate
PkgConfig::XKB_COMMON_X11 # special case
XCB::ICCCM
XCB::IMAGE
XCB::KEYSYMS
@ -120,7 +98,12 @@ qt_extend_target(XcbQpa CONDITION QT_FEATURE_draganddrop
qt_extend_target(XcbQpa CONDITION QT_FEATURE_xcb_xlib
PUBLIC_LIBRARIES
X11::XCB
X11::X11 # special case
# special case begin
# 'QMAKE_USE += xcb_xlib' in qmake implies also += xlib (aka X11)
# due to "use": "xcb xlib" in src/gui/configure.json.
# That's not yet handled by the conversion scripts unfortunately.
X11::X11
# special case end
)
qt_extend_target(XcbQpa CONDITION QT_FEATURE_xcb_sm

View File

@ -528,9 +528,9 @@ _library_map = [
LibraryMapping("xcb_xlib", "X11_XCB", "X11::XCB"),
LibraryMapping("xcomposite", "XComposite", "PkgConfig::XComposite"),
LibraryMapping("xkbcommon_evdev", "XKB", "XKB::XKB", extra=["0.4.1"]), # see also xkbcommon
LibraryMapping("xkbcommon_x11", "XKB", "XKB::XKB", extra=["0.4.1"]), # see also xkbcommon
LibraryMapping("xkbcommon_x11", "XKB_COMMON_X11", "PkgConfig::XKB_COMMON_X11", extra=["0.4.1"]),
LibraryMapping("xkbcommon", "XKB", "XKB::XKB", extra=["0.4.1"]),
LibraryMapping("xlib", "X11", "X11::XCB"), # FIXME: Is this correct?
LibraryMapping("xlib", "X11", "X11::X11"),
LibraryMapping("xrender", "XRender", "PkgConfig::XRender"),
LibraryMapping("zlib", "ZLIB", "ZLIB::ZLIB", extra=["REQUIRED"]),
LibraryMapping("zstd", "ZSTD", "ZSTD::ZSTD"),