summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexandru Croitor <alexandru.croitor@qt.io>2020-02-24 14:24:25 +0100
committerAlexandru Croitor <alexandru.croitor@qt.io>2020-02-25 15:43:16 +0100
commit160184d6a5d0b89d9b885581f2d93a5650eede0a (patch)
tree4be4da03488b16080c484ec33bd38864569139f8
parent8ab59fd8b358f6aee94b5b2907209170b28acaca (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.txt2
-rw-r--r--src/platformsupport/eglconvenience/CMakeLists.txt2
-rw-r--r--src/platformsupport/glxconvenience/.prev_CMakeLists.txt2
-rw-r--r--src/platformsupport/glxconvenience/CMakeLists.txt2
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_x11/CMakeLists.txt1
-rw-r--r--src/plugins/platforms/xcb/.prev_CMakeLists.txt1
-rw-r--r--src/plugins/platforms/xcb/CMakeLists.txt31
-rw-r--r--util/cmake/helper.py4
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"),