Try to find XCB.
This is a component-based find module, which makes use of the COMPONENTS and OPTIONAL_COMPONENTS arguments to find_module. The following components are available:
XCB ATOM AUX COMPOSITE CURSOR DAMAGE DPMS DRI2 DRI3 EVENT EWMH GLX ICCCM IMAGE KEYSYMS PRESENT RANDR RECORD RENDER RENDERUTIL RES SCREENSAVER SHAPE SHM SYNC UTIL XEVIE XF86DRI XFIXES XINERAMA XINPUT XKB XPRINT XTEST XV XVMC
If no components are specified, this module will act as though all components were passed to OPTIONAL_COMPONENTS. Before 5.82 this excluded XINPUT. Since 5.82 all components are searched for.
This module will define the following variables, independently of the components searched for or found:
True if (the requestion version of) xcb is available
Found xcb version
A list of all targets imported by this module (note that there may be more than the components that were requested)
This can be passed to target_link_libraries() instead of the imported targets
This should be passed to target_include_directories() if the targets are not used for linking
This should be passed to target_compile_options() if the targets are not used for linking
For each searched-for components,
XCB_<component>_FOUND will be set to
true if the corresponding xcb library was found, and false otherwise. If
XCB_<component>_FOUND is true, the imported target
will be defined. This module will also attempt to determine
XCB_*_VERSION variables for each imported target, although
XCB_VERSION should normally be sufficient.
In general we recommend using the imported targets, as they are easier to use and provide more control. Bear in mind, however, that if any target is in the link interface of an exported library, it must be made available by the package config file.