1find_package(PkgConfig QUIET) 2pkg_check_modules(libdrm QUIET "libdrm") 3pkg_check_modules(libdrm_rockchip QUIET "libdrm_rockchip") 4 5include(FindPackageHandleStandardArgs) 6find_path(LIBDRM_INCLUDE_DIR 7 NAMES 8 drm.h 9 PATH 10 include 11 PATH_SUFFIXES 12 drm 13) 14 15find_path(LIBDRM_XF86DRM_INCLUDE_DIR 16 NAMES 17 xf86drm.h 18 PATH 19 include 20) 21find_library(LIBDRM_LIBRARY 22 drm 23) 24 25find_package_handle_standard_args(libdrm 26 DEFAULT_MSGS 27 LIBDRM_INCLUDE_DIR 28 LIBDRM_LIBRARY 29) 30mark_as_advanced( 31 LIBDRM_INCLUDE_DIR 32 LIBDRM_LIBRARY 33) 34 35if(LIBDRM_PLATFORM_ROCKCHIP) 36find_path(LIBDRM_ROCKCHIP_INCLUDE_DIR 37 NAMES 38 rockchip_drm.h 39 PATH 40 include 41 PATH_SUFFIXES 42 libdrm 43) 44find_library(LIBDRM_ROCKCHIP_LIBRARY 45 drm_rockchip 46) 47find_package_handle_standard_args(libdrm_rockchip 48 DEFAULT_MSGS 49 LIBDRM_ROCKCHIP_INCLUDE_DIR 50 LIBDRM_ROCKCHIP_LIBRARY 51) 52mark_as_advanced( 53 LIBDRM_ROCKCHIP_INCLUDE_DIR 54 LIBDRM_ROCKCHIP_LIBRARY 55) 56endif() 57 58if(libdrm_FOUND OR libdrm_rockchip_FOUND) 59 if(libdrm_rockchip_FOUND) 60 set(LIBDRM_LIBRARIES ${LIBDRM_LIBRARY};${LIBDRM_ROCKCHIP_LIBRARY}) 61 set(LIBDRM_INCLUDE_DIRS ${LIBDRM_ROCKCHIP_INCLUDE_DIR};${LIBDRM_XF86DRM_INCLUDE_DIR};${LIBDRM_INCLUDE_DIR}) 62 set(LIBDRM_CFLAGS "-DHAS_LIBDRM -DHAS_LIBDRM_ROCKCHIP") 63 else() 64 set(LIBDRM_LIBRARIES ${LIBDRM_LIBRARY}) 65 set(LIBDRM_INCLUDE_DIRS ${LIBDRM_INCLUDE_DIR}) 66 set(LIBDRM_CFLAGS "-DHAS_LIBDRM" "-I${LIBDRM_INCLUDE_DIRS}") 67 endif() 68 69 if(LIBDRM_LIBRARY AND NOT TARGET libdrm::libdrm) 70 if(IS_ABSOLUTE "${LIBDRM_LIBRARY}") 71 add_library(libdrm::libdrm UNKNOWN IMPORTED) 72 set_target_properties(libdrm::libdrm PROPERTIES IMPORTED_LOCATION "${LIBDRM_LIBRARIES}") 73 else() 74 add_library(libdrm::libdrm INTERFACE IMPORTED) 75 set_target_properties(libdrm::libdrm PROPERTIES IMPORTED_LIBNAME "${LIBDRM_LIBRARIES}") 76 endif() 77 set_target_properties(libdrm::libdrm PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${LIBDRM_INCLUDE_DIRS}") 78 include_directories("${LIBDRM_INCLUDE_DIRS}") 79 endif() 80endif() 81