https://bugs.gentoo.org/959725
https://github.com/KhronosGroup/Vulkan-Tools/issues/1130
https://github.com/KhronosGroup/Vulkan-Tools/pull/1134

From f546743016f5301c063f2c50af0ea43dd2485ef4 Mon Sep 17 00:00:00 2001
From: Charles Giessen <charles@lunarg.com>
Date: Thu, 17 Jul 2025 09:56:40 -0500
Subject: [PATCH] build: Remove pkg-config provided library names

The library names of Xcb, Xlib, and Wayland do not need to be queried from pkg-config,
instead they can be hardcoded to use the fallback names.

The intent of querying the library names was to prevent issues where the hardcoded name
was not the platform-appropriate name. But because <library>_LINK_LIBRARIES can have
more than one library name, the logic to assign <library>_LINK_LIBRARIES into a compile
definition breaks horribly. While it is possible to handle this in CMake, the dlopen code would
also have to handle it which is much more error prone.
---
 cube/CMakeLists.txt   | 20 --------------------
 cube/wayland_loader.h |  3 ---
 cube/xcb_loader.h     |  3 ---
 cube/xlib_loader.h    |  3 ---
 4 files changed, 29 deletions(-)

diff --git a/cube/CMakeLists.txt b/cube/CMakeLists.txt
index 7e135e79b..dac6bfed9 100644
--- a/cube/CMakeLists.txt
+++ b/cube/CMakeLists.txt
@@ -307,16 +307,6 @@ if (ANDROID)
     return()
 endif()
 
-if (XCB_LINK_LIBRARIES)
-    target_compile_definitions(vkcube PRIVATE "XCB_LIBRARY=\"${XCB_LINK_LIBRARIES}\"")
-endif()
-if (X11_LINK_LIBRARIES)
-    target_compile_definitions(vkcube PRIVATE "XLIB_LIBRARY=\"${X11_LINK_LIBRARIES}\"")
-endif()
-if (WAYLAND_CLIENT_LINK_LIBRARIES)
-    target_compile_definitions(vkcube PRIVATE "WAYLAND_LIBRARY=\"${WAYLAND_CLIENT_LINK_LIBRARIES}\"")
-endif()
-
 # ----------------------------------------------------------------------------
 # vkcubepp
 
@@ -360,16 +350,6 @@ target_include_directories(vkcubepp PRIVATE .)
 target_compile_definitions(vkcubepp PRIVATE ${ENABLED_CUBE_PLATFORMS})
 target_link_libraries(vkcubepp ${CMAKE_DL_LIBS} Vulkan::Headers)
 
-if (XCB_LINK_LIBRARIES )
-    target_compile_definitions(vkcubepp PUBLIC "XCB_LIBRARY=\"${XCB_LINK_LIBRARIES}\"")
-endif()
-if (X11_LINK_LIBRARIES)
-    target_compile_definitions(vkcubepp PUBLIC "XLIB_LIBRARY=\"${X11_LINK_LIBRARIES}\"")
-endif()
-if (WAYLAND_CLIENT_LINK_LIBRARIES)
-    target_compile_definitions(vkcubepp PUBLIC "WAYLAND_LIBRARY=\"${WAYLAND_CLIENT_LINK_LIBRARIES}\"")
-endif()
-
 if(APPLE)
     install(
         TARGETS vkcubepp
diff --git a/cube/wayland_loader.h b/cube/wayland_loader.h
index 2afab6e97..7d7d91412 100644
--- a/cube/wayland_loader.h
+++ b/cube/wayland_loader.h
@@ -80,9 +80,6 @@ static PFN_wl_display_disconnect cube_wl_display_disconnect = NULL;
 
 static inline void *initialize_wayland() {
     void *wayland_library = NULL;
-#if defined(WAYLAND_LIBRARY)
-    wayland_library = dlopen(WAYLAND_LIBRARY, RTLD_NOW | RTLD_LOCAL);
-#endif
     if (NULL == wayland_library) {
         wayland_library = dlopen("libwayland-client.so.0", RTLD_NOW | RTLD_LOCAL);
     }
diff --git a/cube/xcb_loader.h b/cube/xcb_loader.h
index a94d5ab56..cecd25402 100644
--- a/cube/xcb_loader.h
+++ b/cube/xcb_loader.h
@@ -88,9 +88,6 @@ static PFN_xcb_screen_next cube_xcb_screen_next = NULL;
 
 void *initialize_xcb() {
     void *xcb_library = NULL;
-#if defined(XCB_LIBRARY)
-    xcb_library = dlopen(XCB_LIBRARY, RTLD_NOW | RTLD_LOCAL);
-#endif
     if (NULL == xcb_library) {
         xcb_library = dlopen("libxcb.so.1", RTLD_NOW | RTLD_LOCAL);
     }
diff --git a/cube/xlib_loader.h b/cube/xlib_loader.h
index c7874d0e7..881789f18 100644
--- a/cube/xlib_loader.h
+++ b/cube/xlib_loader.h
@@ -72,9 +72,6 @@ static PFN_XFlush cube_XFlush = NULL;
 
 void* initialize_xlib() {
     void* xlib_library = NULL;
-#if defined(XLIB_LIBRARY)
-    xlib_library = dlopen(XLIB_LIBRARY, RTLD_NOW | RTLD_LOCAL);
-#endif
     if (NULL == xlib_library) {
         xlib_library = dlopen("libX11.so.6", RTLD_NOW | RTLD_LOCAL);
     }
