From 118674630cdb5933e66a8b4415afe7c716ad4662 Mon Sep 17 00:00:00 2001 From: Fabian Vogt Date: Fri, 4 Feb 2022 11:07:36 +0100 Subject: [PATCH 40/40] Use proper dependencies in compile tests Use the dependencies as found by the "libraries" section instead of relying on them being available in the default location (e.g. "-ldrm"). Additionally, VK_USE_PLATFORM_WAYLAND_KHR requires , so add the wayland-client dependency. This fixes those tests if e.g. wayland-client headers need to be found through pkgconfig. This part of the code changed completely in Qt 6, so this is a totally different patch and not a cherry-pick of 5fc2e1915c3a ("CMake: Fix qtwayland feature detection"). Fixes: QTBUG-100475 --- src/client/configure.json | 8 ++++---- src/compositor/configure.json | 34 +++++++++++++++++++++++++++++----- 2 files changed, 33 insertions(+), 9 deletions(-) diff --git a/src/client/configure.json b/src/client/configure.json index 2f424580..29222357 100644 --- a/src/client/configure.json +++ b/src/client/configure.json @@ -149,8 +149,7 @@ "#endif" ] }, - "libs": "-ldrm", - "use": "egl" + "use": "drm egl" }, "vulkan-server-buffer": { "label": "Vulkan Buffer Sharing", @@ -168,7 +167,8 @@ "exportAllocInfo.handleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR;", "return 0;" ] - } + }, + "use": "wayland-client" }, "egl_1_5-wayland": { "label": "EGL 1.5 with Wayland Platform", @@ -183,7 +183,7 @@ "eglGetPlatformDisplay(EGL_PLATFORM_WAYLAND_EXT, (struct wl_display *)(nullptr), nullptr);" ] }, - "use": "egl" + "use": "egl wayland-client" } }, diff --git a/src/compositor/configure.json b/src/compositor/configure.json index bcfd5215..da95d07b 100644 --- a/src/compositor/configure.json +++ b/src/compositor/configure.json @@ -7,6 +7,31 @@ "testDir": "../../config.tests", "libraries": { + "wayland-client": { + "label": "Wayland client library", + "headers": "wayland-version.h", + "test": { + "main": [ + "#if WAYLAND_VERSION_MAJOR < 1", + "# error Wayland 1.8.0 or higher required", + "#endif", + "#if WAYLAND_VERSION_MAJOR == 1", + "# if WAYLAND_VERSION_MINOR < 8", + "# error Wayland 1.8.0 or higher required", + "# endif", + "# if WAYLAND_VERSION_MINOR == 8", + "# if WAYLAND_VERSION_MICRO < 0", + "# error Wayland 1.8.0 or higher required", + "# endif", + "# endif", + "#endif" + ] + }, + "sources": [ + { "type": "pkgConfig", "args": "wayland-client" }, + "-lwayland-client" + ] + }, "wayland-server": { "label": "wayland-server", "headers": "wayland-version.h", @@ -151,8 +176,7 @@ "#endif" ] }, - "libs": "-ldrm", - "use": "egl" + "use": "drm egl" }, "dmabuf-client-buffer": { "label": "Linux Client dma-buf Buffer Sharing", @@ -176,8 +200,7 @@ "return 0;" ] }, - "libs": "-ldrm", - "use": "egl" + "use": "drm egl" }, "vulkan-server-buffer": { "label": "Vulkan Buffer Sharing", @@ -195,7 +218,8 @@ "exportAllocInfo.handleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR;", "return 0;" ] - } + }, + "use": "wayland-client" } }, -- 2.35.1