cmake: Use PkgConfig to find XCB
authorJuan Ramos <juan@lunarg.com>
Tue, 27 Dec 2022 19:05:40 +0000 (12:05 -0700)
committerJuan Ramos <114601453+juan-lunarg@users.noreply.github.com>
Tue, 27 Dec 2022 20:30:48 +0000 (13:30 -0700)
cmake/FindX11_XCB.cmake [deleted file]
cmake/FindXCB.cmake [deleted file]
cube/CMakeLists.txt
icd/CMakeLists.txt
vulkaninfo/CMakeLists.txt

diff --git a/cmake/FindX11_XCB.cmake b/cmake/FindX11_XCB.cmake
deleted file mode 100644 (file)
index 956bf89..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-# - Try to find libX11-xcb
-# Once done this will define
-#
-# X11_XCB_FOUND - system has libX11-xcb
-# X11_XCB_LIBRARIES - Link these to use libX11-xcb
-# X11_XCB_INCLUDE_DIR - the libX11-xcb include dir
-# X11_XCB_DEFINITIONS - compiler switches required for using libX11-xcb
-
-# Copyright (c) 2011 Fredrik Höglund <fredrik@kde.org>
-# Copyright (c) 2008 Helio Chissini de Castro, <helio@kde.org>
-# Copyright (c) 2007 Matthias Kretz, <kretz@kde.org>
-#
-# Redistribution and use is allowed according to the terms of the BSD license.
-# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
-
-IF (NOT WIN32)
-  # use pkg-config to get the directories and then use these values
-  # in the FIND_PATH() and FIND_LIBRARY() calls
-  FIND_PACKAGE(PkgConfig)
-  PKG_CHECK_MODULES(PKG_X11_XCB QUIET x11-xcb)
-
-  SET(X11_XCB_DEFINITIONS ${PKG_X11_XCB_CFLAGS})
-
-  FIND_PATH(X11_XCB_INCLUDE_DIR NAMES X11/Xlib-xcb.h HINTS ${PKG_X11_XCB_INCLUDE_DIRS})
-  FIND_LIBRARY(X11_XCB_LIBRARIES NAMES X11-xcb HINTS ${PKG_X11_XCB_LIBRARY_DIRS})
-
-  include(FindPackageHandleStandardArgs)
-  FIND_PACKAGE_HANDLE_STANDARD_ARGS(X11_XCB DEFAULT_MSG X11_XCB_LIBRARIES X11_XCB_INCLUDE_DIR)
-
-  MARK_AS_ADVANCED(X11_XCB_INCLUDE_DIR X11_XCB_LIBRARIES)
-ENDIF (NOT WIN32)
-
diff --git a/cmake/FindXCB.cmake b/cmake/FindXCB.cmake
deleted file mode 100644 (file)
index b01c246..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-# - FindXCB
-#
-# Copyright (C) 2015 Valve Corporation
-
-find_package(PkgConfig)
-
-if(NOT XCB_FIND_COMPONENTS)
-    set(XCB_FIND_COMPONENTS xcb)
-endif()
-
-include(FindPackageHandleStandardArgs)
-set(XCB_FOUND true)
-set(XCB_INCLUDE_DIRS "")
-set(XCB_LIBRARIES "")
-foreach(comp ${XCB_FIND_COMPONENTS})
-    # component name
-    string(TOUPPER ${comp} compname)
-    string(REPLACE "-" "_" compname ${compname})
-    # header name
-    string(REPLACE "xcb-" "" headername xcb/${comp}.h)
-    # library name
-    set(libname ${comp})
-
-    pkg_check_modules(PC_${comp} QUIET ${comp})
-
-    find_path(${compname}_INCLUDE_DIR NAMES ${headername}
-        HINTS
-        ${PC_${comp}_INCLUDEDIR}
-        ${PC_${comp}_INCLUDE_DIRS}
-        )
-
-    find_library(${compname}_LIBRARY NAMES ${libname}
-        HINTS
-        ${PC_${comp}_LIBDIR}
-        ${PC_${comp}_LIBRARY_DIRS}
-        )
-
-    find_package_handle_standard_args(${compname}
-        FOUND_VAR ${compname}_FOUND
-        REQUIRED_VARS ${compname}_INCLUDE_DIR ${compname}_LIBRARY)
-    mark_as_advanced(${compname}_INCLUDE_DIR ${compname}_LIBRARY)
-
-    list(APPEND XCB_INCLUDE_DIRS ${${compname}_INCLUDE_DIR})
-    list(APPEND XCB_LIBRARIES ${${compname}_LIBRARY})
-
-    if(NOT ${compname}_FOUND)
-        set(XCB_FOUND false)
-    endif()
-endforeach()
-
-list(REMOVE_DUPLICATES XCB_INCLUDE_DIRS)
index 9db7d5b..e7a1db2 100644 (file)
@@ -49,15 +49,16 @@ else()
 endif()
 
 if(UNIX AND NOT APPLE) # i.e. Linux
-    find_package(PkgConfig)
     option(BUILD_WSI_XCB_SUPPORT "Build XCB WSI support" ON)
     option(BUILD_WSI_XLIB_SUPPORT "Build Xlib WSI support" ON)
     option(BUILD_WSI_WAYLAND_SUPPORT "Build Wayland WSI support" ON)
     option(BUILD_WSI_DIRECTFB_SUPPORT "Build DirectFB WSI support" OFF)
     set(CUBE_WSI_SELECTION "XCB" CACHE STRING "Select WSI target for vkcube (XCB, XLIB, WAYLAND, DIRECTFB, DISPLAY)")
 
+    find_package(PkgConfig REQUIRED QUIET) # Use PkgConfig to find Linux system libraries
+
     if(BUILD_WSI_XCB_SUPPORT)
-        find_package(XCB REQUIRED)
+        pkg_check_modules(XCB REQUIRED QUIET IMPORTED_TARGET xcb)
     endif()
 
     if(BUILD_WSI_XLIB_SUPPORT)
@@ -134,8 +135,7 @@ elseif(UNIX AND NOT APPLE) # i.e. Linux
         if(NOT BUILD_WSI_XCB_SUPPORT)
             message(FATAL_ERROR "Selected XCB for vkcube build but not building Xcb support")
         endif()
-        set(CUBE_INCLUDE_DIRS ${XCB_INCLUDE_DIRS} ${CUBE_INCLUDE_DIRS})
-        link_libraries(${XCB_LIBRARIES})
+        link_libraries(PkgConfig::XCB)
         set(CUBE_PLATFORM VK_USE_PLATFORM_XCB_KHR)
     elseif(CUBE_WSI_SELECTION STREQUAL "XLIB")
         if(NOT BUILD_WSI_XLIB_SUPPORT)
index ded0baa..41772f7 100644 (file)
@@ -23,8 +23,6 @@ elseif(APPLE)
     add_definitions(-DVK_USE_PLATFORM_MACOS_MVK)
 elseif(UNIX AND NOT APPLE) # i.e. Linux
     if(BUILD_WSI_XCB_SUPPORT)
-        find_package(XCB REQUIRED)
-        include_directories(${XCB_INCLUDE_DIR})
         add_definitions(-DVK_USE_PLATFORM_XCB_KHR -DVK_USE_PLATFORM_XCB_KHX)
     endif()
 
index 69842ba..d91dd79 100644 (file)
@@ -61,16 +61,16 @@ if (NOT WIN32)
 endif()
 
 if(UNIX AND NOT APPLE) # i.e. Linux
-    find_package(PkgConfig)
     option(BUILD_WSI_XCB_SUPPORT "Build XCB WSI support" ON)
     option(BUILD_WSI_XLIB_SUPPORT "Build Xlib WSI support" ON)
     option(BUILD_WSI_WAYLAND_SUPPORT "Build Wayland WSI support" ON)
     option(BUILD_WSI_DIRECTFB_SUPPORT "Build DirectFB WSI support" OFF)
 
+    find_package(PkgConfig REQUIRED QUIET) # Use PkgConfig to find Linux system libraries
+
     if(BUILD_WSI_XCB_SUPPORT)
-        find_package(XCB REQUIRED)
-        target_include_directories(vulkaninfo PRIVATE ${XCB_INCLUDE_DIRS})
-        target_link_libraries(vulkaninfo ${XCB_LIBRARIES})
+        pkg_check_modules(XCB REQUIRED QUIET IMPORTED_TARGET xcb)
+        target_link_libraries(vulkaninfo PkgConfig::XCB)
         target_compile_definitions(vulkaninfo PRIVATE -DVK_USE_PLATFORM_XCB_KHR -DVK_NO_PROTOTYPES)
     endif()