xref: /aosp_15_r20/external/vulkan-validation-layers/cmake/FindXCB.cmake (revision b7893ccf7851cd6a48cc5a1e965257d8a5cdcc70)
1*b7893ccfSSadaf Ebrahimi# - FindXCB
2*b7893ccfSSadaf Ebrahimi#
3*b7893ccfSSadaf Ebrahimi# Copyright (C) 2015 Valve Corporation
4*b7893ccfSSadaf Ebrahimi
5*b7893ccfSSadaf Ebrahimifind_package(PkgConfig)
6*b7893ccfSSadaf Ebrahimi
7*b7893ccfSSadaf Ebrahimiif(NOT XCB_FIND_COMPONENTS)
8*b7893ccfSSadaf Ebrahimi    set(XCB_FIND_COMPONENTS xcb)
9*b7893ccfSSadaf Ebrahimiendif()
10*b7893ccfSSadaf Ebrahimi
11*b7893ccfSSadaf Ebrahimiinclude(FindPackageHandleStandardArgs)
12*b7893ccfSSadaf Ebrahimiset(XCB_FOUND true)
13*b7893ccfSSadaf Ebrahimiset(XCB_INCLUDE_DIRS "")
14*b7893ccfSSadaf Ebrahimiset(XCB_LIBRARIES "")
15*b7893ccfSSadaf Ebrahimiforeach(comp ${XCB_FIND_COMPONENTS})
16*b7893ccfSSadaf Ebrahimi    # component name
17*b7893ccfSSadaf Ebrahimi    string(TOUPPER ${comp} compname)
18*b7893ccfSSadaf Ebrahimi    string(REPLACE "-" "_" compname ${compname})
19*b7893ccfSSadaf Ebrahimi    # header name
20*b7893ccfSSadaf Ebrahimi    string(REPLACE "xcb-" "" headername xcb/${comp}.h)
21*b7893ccfSSadaf Ebrahimi    # library name
22*b7893ccfSSadaf Ebrahimi    set(libname ${comp})
23*b7893ccfSSadaf Ebrahimi
24*b7893ccfSSadaf Ebrahimi    pkg_check_modules(PC_${comp} QUIET ${comp})
25*b7893ccfSSadaf Ebrahimi
26*b7893ccfSSadaf Ebrahimi    find_path(${compname}_INCLUDE_DIR NAMES ${headername}
27*b7893ccfSSadaf Ebrahimi        HINTS
28*b7893ccfSSadaf Ebrahimi        ${PC_${comp}_INCLUDEDIR}
29*b7893ccfSSadaf Ebrahimi        ${PC_${comp}_INCLUDE_DIRS}
30*b7893ccfSSadaf Ebrahimi        )
31*b7893ccfSSadaf Ebrahimi
32*b7893ccfSSadaf Ebrahimi    find_library(${compname}_LIBRARY NAMES ${libname}
33*b7893ccfSSadaf Ebrahimi        HINTS
34*b7893ccfSSadaf Ebrahimi        ${PC_${comp}_LIBDIR}
35*b7893ccfSSadaf Ebrahimi        ${PC_${comp}_LIBRARY_DIRS}
36*b7893ccfSSadaf Ebrahimi        )
37*b7893ccfSSadaf Ebrahimi
38*b7893ccfSSadaf Ebrahimi    find_package_handle_standard_args(${comp}
39*b7893ccfSSadaf Ebrahimi        FOUND_VAR ${comp}_FOUND
40*b7893ccfSSadaf Ebrahimi        REQUIRED_VARS ${compname}_INCLUDE_DIR ${compname}_LIBRARY)
41*b7893ccfSSadaf Ebrahimi    mark_as_advanced(${compname}_INCLUDE_DIR ${compname}_LIBRARY)
42*b7893ccfSSadaf Ebrahimi
43*b7893ccfSSadaf Ebrahimi    list(APPEND XCB_INCLUDE_DIRS ${${compname}_INCLUDE_DIR})
44*b7893ccfSSadaf Ebrahimi    list(APPEND XCB_LIBRARIES ${${compname}_LIBRARY})
45*b7893ccfSSadaf Ebrahimi
46*b7893ccfSSadaf Ebrahimi    if(NOT ${comp}_FOUND)
47*b7893ccfSSadaf Ebrahimi        set(XCB_FOUND false)
48*b7893ccfSSadaf Ebrahimi    endif()
49*b7893ccfSSadaf Ebrahimiendforeach()
50*b7893ccfSSadaf Ebrahimi
51*b7893ccfSSadaf Ebrahimilist(REMOVE_DUPLICATES XCB_INCLUDE_DIRS)
52