aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuan Ramos <juan@lunarg.com>2022-12-27 12:05:40 -0700
committerJuan Ramos <114601453+juan-lunarg@users.noreply.github.com>2022-12-27 13:30:48 -0700
commit99cce136a531ebfd5ecd6199b36d92d15c19f9e6 (patch)
tree2ad6740315a5eaa260c1f3338caced9a0a8ebd86
parentdda9ae0f9113ad3816ba5f84e1a59b1529e82630 (diff)
downloadvulkan-tools-99cce136a531ebfd5ecd6199b36d92d15c19f9e6.tar.gz
cmake: Use PkgConfig to find XCB
-rw-r--r--cmake/FindX11_XCB.cmake32
-rw-r--r--cmake/FindXCB.cmake51
-rw-r--r--cube/CMakeLists.txt8
-rw-r--r--icd/CMakeLists.txt2
-rw-r--r--vulkaninfo/CMakeLists.txt8
5 files changed, 8 insertions, 93 deletions
diff --git a/cmake/FindX11_XCB.cmake b/cmake/FindX11_XCB.cmake
deleted file mode 100644
index 956bf89d..00000000
--- a/cmake/FindX11_XCB.cmake
+++ /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
index b01c2463..00000000
--- a/cmake/FindXCB.cmake
+++ /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)
diff --git a/cube/CMakeLists.txt b/cube/CMakeLists.txt
index 9db7d5ba..e7a1db2e 100644
--- a/cube/CMakeLists.txt
+++ b/cube/CMakeLists.txt
@@ -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)
diff --git a/icd/CMakeLists.txt b/icd/CMakeLists.txt
index ded0baaf..41772f70 100644
--- a/icd/CMakeLists.txt
+++ b/icd/CMakeLists.txt
@@ -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()
diff --git a/vulkaninfo/CMakeLists.txt b/vulkaninfo/CMakeLists.txt
index 69842ba5..d91dd79e 100644
--- a/vulkaninfo/CMakeLists.txt
+++ b/vulkaninfo/CMakeLists.txt
@@ -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()