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