diff options
author | Alexandru Croitor <alexandru.croitor@qt.io> | 2020-02-24 14:24:25 +0100 |
---|---|---|
committer | Alexandru Croitor <alexandru.croitor@qt.io> | 2020-02-25 15:43:16 +0100 |
commit | 160184d6a5d0b89d9b885581f2d93a5650eede0a (patch) | |
tree | 4be4da03488b16080c484ec33bd38864569139f8 | |
parent | 8ab59fd8b358f6aee94b5b2907209170b28acaca (diff) |
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>
-rw-r--r-- | src/platformsupport/eglconvenience/.prev_CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/platformsupport/eglconvenience/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/platformsupport/glxconvenience/.prev_CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/platformsupport/glxconvenience/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/plugins/platforms/eglfs/deviceintegration/eglfs_x11/CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/plugins/platforms/xcb/.prev_CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/plugins/platforms/xcb/CMakeLists.txt | 31 | ||||
-rw-r--r-- | util/cmake/helper.py | 4 |
8 files changed, 15 insertions, 30 deletions
diff --git a/src/platformsupport/eglconvenience/.prev_CMakeLists.txt b/src/platformsupport/eglconvenience/.prev_CMakeLists.txt index f8efacd7cb..c00cc30d62 100644 --- a/src/platformsupport/eglconvenience/.prev_CMakeLists.txt +++ b/src/platformsupport/eglconvenience/.prev_CMakeLists.txt @@ -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 diff --git a/src/platformsupport/eglconvenience/CMakeLists.txt b/src/platformsupport/eglconvenience/CMakeLists.txt index b18a1470ec..1858dc7e90 100644 --- a/src/platformsupport/eglconvenience/CMakeLists.txt +++ b/src/platformsupport/eglconvenience/CMakeLists.txt @@ -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 diff --git a/src/platformsupport/glxconvenience/.prev_CMakeLists.txt b/src/platformsupport/glxconvenience/.prev_CMakeLists.txt index f9a2fed5b2..d3d2c87910 100644 --- a/src/platformsupport/glxconvenience/.prev_CMakeLists.txt +++ b/src/platformsupport/glxconvenience/.prev_CMakeLists.txt @@ -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>: diff --git a/src/platformsupport/glxconvenience/CMakeLists.txt b/src/platformsupport/glxconvenience/CMakeLists.txt index 00bc78d429..00d2e6c754 100644 --- a/src/platformsupport/glxconvenience/CMakeLists.txt +++ b/src/platformsupport/glxconvenience/CMakeLists.txt @@ -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>: diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_x11/CMakeLists.txt b/src/plugins/platforms/eglfs/deviceintegration/eglfs_x11/CMakeLists.txt index 29dcd0dab7..fee448db8a 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_x11/CMakeLists.txt +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_x11/CMakeLists.txt @@ -20,6 +20,7 @@ qt_add_plugin(QEglFSX11IntegrationPlugin Qt::EglFSDeviceIntegrationPrivate Qt::Gui Qt::GuiPrivate + X11::X11 X11::XCB XCB::XCB ) diff --git a/src/plugins/platforms/xcb/.prev_CMakeLists.txt b/src/plugins/platforms/xcb/.prev_CMakeLists.txt index 427997fc66..85290fae84 100644 --- a/src/plugins/platforms/xcb/.prev_CMakeLists.txt +++ b/src/plugins/platforms/xcb/.prev_CMakeLists.txt @@ -39,6 +39,7 @@ qt_add_module(XcbQpa INCLUDE_DIRECTORIES gl_integrations PUBLIC_LIBRARIES + PkgConfig::XKB_COMMON_X11 Qt::CorePrivate Qt::EdidSupportPrivate Qt::FontDatabaseSupportPrivate diff --git a/src/plugins/platforms/xcb/CMakeLists.txt b/src/plugins/platforms/xcb/CMakeLists.txt index d422d69891..a7cb58ba29 100644 --- a/src/plugins/platforms/xcb/CMakeLists.txt +++ b/src/plugins/platforms/xcb/CMakeLists.txt @@ -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 diff --git a/util/cmake/helper.py b/util/cmake/helper.py index 6bd54b5534..b5f38617b1 100644 --- a/util/cmake/helper.py +++ b/util/cmake/helper.py @@ -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"), |