Reapply: xcb: add xcb-util dependency for xcb-image

xcb-image includes xcb_aux.h, which is part of xcb-util.

0.3.8 is enough for the dependency, it also make Debian 10
(Buster) satisfied. xcb-image is from xcb-util-image, which
should follow same version number as xcb-util. Not sure how
Debian 10(Buster) got xcb-image 0.3.9 with xcb-util 0.3.8
combination.

See also https://lists.x.org/archives/xorg-announce/2012-May/date.html#1965 .

This reverts 92a57e0b016f811876ec1d62328ca8edfe452a3a .

Fixes: QTBUG-86287
Pick-to: 6.10 6.9 6.8 6.5
Change-Id: I838b1e06a25fa1e45470466de17cbb6b6da851a4
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
This commit is contained in:
Liang Qi 2025-05-27 16:07:19 +02:00
parent 1c87e9a60a
commit ac2a38d80c
2 changed files with 8 additions and 1 deletions

View File

@ -100,10 +100,14 @@ if((X11_SUPPORTED) OR QT_FIND_ALL_PACKAGES_ALWAYS)
qt_find_package(XCB 0.3.9 COMPONENTS ICCCM PROVIDED_TARGETS XCB::ICCCM MODULE_NAME gui QMAKE_LIB xcb_icccm) qt_find_package(XCB 0.3.9 COMPONENTS ICCCM PROVIDED_TARGETS XCB::ICCCM MODULE_NAME gui QMAKE_LIB xcb_icccm)
endif() endif()
qt_add_qmake_lib_dependency(xcb_icccm xcb) qt_add_qmake_lib_dependency(xcb_icccm xcb)
if((X11_SUPPORTED) OR QT_FIND_ALL_PACKAGES_ALWAYS)
qt_find_package(XCB 0.3.8 COMPONENTS UTIL PROVIDED_TARGETS XCB::UTIL MODULE_NAME gui QMAKE_LIB xcb_util)
endif()
qt_add_qmake_lib_dependency(xcb_util xcb)
if((X11_SUPPORTED) OR QT_FIND_ALL_PACKAGES_ALWAYS) if((X11_SUPPORTED) OR QT_FIND_ALL_PACKAGES_ALWAYS)
qt_find_package(XCB 0.3.9 COMPONENTS IMAGE PROVIDED_TARGETS XCB::IMAGE MODULE_NAME gui QMAKE_LIB xcb_image) qt_find_package(XCB 0.3.9 COMPONENTS IMAGE PROVIDED_TARGETS XCB::IMAGE MODULE_NAME gui QMAKE_LIB xcb_image)
endif() endif()
qt_add_qmake_lib_dependency(xcb_image xcb_shm xcb) qt_add_qmake_lib_dependency(xcb_image xcb_shm xcb_util xcb)
if((X11_SUPPORTED) OR QT_FIND_ALL_PACKAGES_ALWAYS) if((X11_SUPPORTED) OR QT_FIND_ALL_PACKAGES_ALWAYS)
qt_find_package(XCB 0.3.9 COMPONENTS KEYSYMS PROVIDED_TARGETS XCB::KEYSYMS MODULE_NAME gui QMAKE_LIB xcb_keysyms) qt_find_package(XCB 0.3.9 COMPONENTS KEYSYMS PROVIDED_TARGETS XCB::KEYSYMS MODULE_NAME gui QMAKE_LIB xcb_keysyms)
endif() endif()
@ -555,6 +559,7 @@ qt_config_compile_test(xcb_syslibs
LIBRARIES LIBRARIES
XCB::CURSOR XCB::CURSOR
XCB::ICCCM XCB::ICCCM
XCB::UTIL
XCB::IMAGE XCB::IMAGE
XCB::KEYSYMS XCB::KEYSYMS
XCB::RANDR XCB::RANDR
@ -570,6 +575,7 @@ qt_config_compile_test(xcb_syslibs
"// xkb.h is using a variable called 'explicit', which is a reserved keyword in C++ "// xkb.h is using a variable called 'explicit', which is a reserved keyword in C++
#define explicit dont_use_cxx_explicit #define explicit dont_use_cxx_explicit
#include <xcb/xcb.h> #include <xcb/xcb.h>
#include <xcb/xcb_util.h>
#include <xcb/xcb_image.h> #include <xcb/xcb_image.h>
#include <xcb/xcb_keysyms.h> #include <xcb/xcb_keysyms.h>
#include <xcb/xcb_cursor.h> #include <xcb/xcb_cursor.h>

View File

@ -52,6 +52,7 @@ qt_internal_add_module(XcbQpaPrivate
Qt::GuiPrivate Qt::GuiPrivate
XCB::CURSOR XCB::CURSOR
XCB::ICCCM XCB::ICCCM
XCB::UTIL
XCB::IMAGE XCB::IMAGE
XCB::KEYSYMS XCB::KEYSYMS
XCB::RANDR XCB::RANDR