From 39b1dea2ec5cde9523df61c78dec5d4b195f66d2 Mon Sep 17 00:00:00 2001 From: Liang Qi Date: Mon, 7 Sep 2020 11:32:40 +0200 Subject: [PATCH] xcb: add xcb-util dependency for xcb-image MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit xcb-image includes xcb_aux.h, which is part of xcb-util. Fixes: QTBUG-86287 Pick-to: 5.15 Change-Id: I253308008c5baeb1d061ef19f516ae6ab6dff52c Reviewed-by: Tor Arne Vestbø --- src/gui/.prev_configure.cmake | 8 +++++++- src/gui/configure.cmake | 8 +++++++- src/gui/configure.json | 14 ++++++++++++-- util/cmake/helper.py | 3 +++ 4 files changed, 29 insertions(+), 4 deletions(-) diff --git a/src/gui/.prev_configure.cmake b/src/gui/.prev_configure.cmake index cd962e86674..196c9662a8d 100644 --- a/src/gui/.prev_configure.cmake +++ b/src/gui/.prev_configure.cmake @@ -66,10 +66,14 @@ if((LINUX) 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) endif() qt_add_qmake_lib_dependency(xcb_icccm xcb) +if((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS) + qt_find_package(XCB 0.3.9 COMPONENTS UTIL PROVIDED_TARGETS XCB::UTIL MODULE_NAME gui QMAKE_LIB xcb_util) +endif() +qt_add_qmake_lib_dependency(xcb_util xcb) if((LINUX) 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) endif() -qt_add_qmake_lib_dependency(xcb_image xcb_shm xcb) +qt_add_qmake_lib_dependency(xcb_image xcb_shm xcb_util xcb) if((LINUX) 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) endif() @@ -478,6 +482,7 @@ qt_config_compile_test(xcb_syslibs LABEL "XCB (extensions)" LIBRARIES XCB::ICCCM + XCB::UTIL XCB::IMAGE XCB::KEYSYMS XCB::RANDR @@ -493,6 +498,7 @@ qt_config_compile_test(xcb_syslibs "// xkb.h is using a variable called 'explicit', which is a reserved keyword in C++ #define explicit dont_use_cxx_explicit #include +#include #include #include #include diff --git a/src/gui/configure.cmake b/src/gui/configure.cmake index a58ce7c9828..24bb8a85825 100644 --- a/src/gui/configure.cmake +++ b/src/gui/configure.cmake @@ -66,10 +66,14 @@ if((LINUX) 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) endif() qt_add_qmake_lib_dependency(xcb_icccm xcb) +if((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS) + qt_find_package(XCB 0.3.9 COMPONENTS UTIL PROVIDED_TARGETS XCB::UTIL MODULE_NAME gui QMAKE_LIB xcb_util) +endif() +qt_add_qmake_lib_dependency(xcb_util xcb) if((LINUX) 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) endif() -qt_add_qmake_lib_dependency(xcb_image xcb_shm xcb) +qt_add_qmake_lib_dependency(xcb_image xcb_shm xcb_util xcb) if((LINUX) 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) endif() @@ -478,6 +482,7 @@ qt_config_compile_test(xcb_syslibs LABEL "XCB (extensions)" LIBRARIES XCB::ICCCM + XCB::UTIL XCB::IMAGE XCB::KEYSYMS XCB::RANDR @@ -493,6 +498,7 @@ qt_config_compile_test(xcb_syslibs "// xkb.h is using a variable called 'explicit', which is a reserved keyword in C++ #define explicit dont_use_cxx_explicit #include +#include #include #include #include diff --git a/src/gui/configure.json b/src/gui/configure.json index d5816c59683..31a9412bad8 100644 --- a/src/gui/configure.json +++ b/src/gui/configure.json @@ -526,6 +526,15 @@ ], "use": "xcb" }, + "xcb_util": { + "label": "XCB Util >= 0.3.9", + "headers": "xcb/xcb_util.h", + "sources": [ + { "type": "pkgConfig", "args": "xcb-util >= 0.3.9" }, + "-lxcb-util" + ], + "use": "xcb" + }, "xcb_image": { "label": "XCB Image >= 0.3.9", "headers": "xcb/xcb_image.h", @@ -533,7 +542,7 @@ { "type": "pkgConfig", "args": "xcb-image >= 0.3.9" }, "-lxcb-image" ], - "use": "xcb_shm xcb" + "use": "xcb_shm xcb_util xcb" }, "xcb_keysyms": { "label": "XCB Keysyms >= 0.3.9", @@ -956,6 +965,7 @@ "tail": "#undef explicit", "include": [ "xcb/xcb.h", + "xcb/xcb_util.h", "xcb/xcb_image.h", "xcb/xcb_keysyms.h", "xcb/randr.h", @@ -986,7 +996,7 @@ "xcb_xkb_get_kbd_by_name_replies_key_names_value_list_sizeof(nullptr, 0, 0, 0, 0, 0, 0, 0, 0);" ] }, - "use": "xcb_icccm xcb_image xcb_keysyms xcb_randr xcb_render xcb_renderutil xcb_shape xcb_shm xcb_sync xcb_xfixes xcb_xkb xcb" + "use": "xcb_icccm xcb_util xcb_image xcb_keysyms xcb_randr xcb_render xcb_renderutil xcb_shape xcb_shm xcb_sync xcb_xfixes xcb_xkb xcb" }, "x11prefix": { "label": "X11 prefix", diff --git a/util/cmake/helper.py b/util/cmake/helper.py index 5e0c4bf38ee..eb607a957a5 100644 --- a/util/cmake/helper.py +++ b/util/cmake/helper.py @@ -490,6 +490,9 @@ _library_map = [ LibraryMapping( "xcb_image", "XCB", "XCB::IMAGE", extra=["0.3.9", "COMPONENTS", "IMAGE"], resultVariable="XCB_IMAGE" ), + LibraryMapping( + "xcb_util", "XCB", "XCB::UTIL", extra=["0.3.9", "COMPONENTS", "UTIL"], resultVariable="XCB_UTIL" + ), LibraryMapping( "xcb_keysyms", "XCB",