FindLibva.cmake 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. # cmake-format: off
  2. #
  3. # This module defines the following variables:
  4. #
  5. # * LIBVA_FOUND - The component was found
  6. # * LIBVA_INCLUDE_DIRS - The component include directory
  7. # * LIBVA_LIBRARIES - The component library Libva
  8. # * LIBVA_DRM_LIBRARIES - The component library Libva DRM
  9. # Use pkg-config to get the directories and then use these values in the
  10. # find_path() and find_library() calls
  11. # cmake-format: on
  12. find_package(PkgConfig QUIET)
  13. if(PKG_CONFIG_FOUND)
  14. pkg_check_modules(_LIBVA libva)
  15. pkg_check_modules(_LIBVA_DRM libva-drm)
  16. pkg_check_modules(_LIBVA_WAYLAND libva-wayland)
  17. pkg_check_modules(_LIBVA_X11 libva-x11)
  18. endif()
  19. find_path(
  20. LIBVA_INCLUDE_DIR
  21. NAMES va/va.h va/va_drm.h
  22. HINTS ${_LIBVA_INCLUDE_DIRS}
  23. PATHS /usr/include /usr/local/include /opt/local/include)
  24. find_library(
  25. LIBVA_LIB
  26. NAMES ${_LIBVA_LIBRARIES} libva
  27. HINTS ${_LIBVA_LIBRARY_DIRS}
  28. PATHS /usr/lib /usr/local/lib /opt/local/lib)
  29. find_library(
  30. LIBVA_DRM_LIB
  31. NAMES ${_LIBVA_DRM_LIBRARIES} libva-drm
  32. HINTS ${_LIBVA_DRM_LIBRARY_DIRS}
  33. PATHS /usr/lib /usr/local/lib /opt/local/lib)
  34. find_library(
  35. LIBVA_WAYLAND_LIB
  36. NAMES ${_LIBVA_WAYLAND_LIBRARIES} libva-wayland
  37. HINTS ${_LIBVA_WAYLAND_LIBRARY_DIRS}
  38. PATHS /usr/lib /usr/local/lib /opt/local/lib)
  39. find_library(
  40. LIBVA_X11_LIB
  41. NAMES ${_LIBVA_X11_LIBRARIES} libva-x11
  42. HINTS ${_LIBVA_X11_LIBRARY_DIRS}
  43. PATHS /usr/lib /usr/local/lib /opt/local/lib)
  44. include(FindPackageHandleStandardArgs)
  45. find_package_handle_standard_args(Libva REQUIRED_VARS LIBVA_INCLUDE_DIR LIBVA_LIB LIBVA_DRM_LIB LIBVA_WAYLAND_LIB
  46. LIBVA_X11_LIB)
  47. mark_as_advanced(LIBVA_INCLUDE_DIR LIBVA_LIB LIBVA_DRM_LIB LIBVA_WAYLAND_LIB LIBVA_X11_LIB)
  48. if(LIBVA_FOUND)
  49. set(LIBVA_INCLUDE_DIRS ${LIBVA_INCLUDE_DIR})
  50. set(LIBVA_LIBRARIES ${LIBVA_LIB})
  51. set(LIBVA_DRM_LIBRARIES ${LIBVA_DRM_LIB})
  52. set(LIBVA_WAYLAND_LIBRARIES ${LIBVA_WAYLAND_LIB})
  53. set(LIBVA_X11_LIBRARIES ${LIBVA_X11_LIB})
  54. if(NOT TARGET Libva::va)
  55. if(IS_ABSOLUTE "${LIBVA_LIBRARIES}")
  56. add_library(Libva::va UNKNOWN IMPORTED)
  57. set_target_properties(Libva::va PROPERTIES IMPORTED_LOCATION "${LIBVA_LIBRARIES}")
  58. else()
  59. add_library(Libva::va INTERFACE IMPORTED)
  60. set_target_properties(Libva::va PROPERTIES IMPORTED_LIBNAME "${LIBVA_LIBRARIES}")
  61. endif()
  62. set_target_properties(Libva::va PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${LIBVA_INCLUDE_DIRS}")
  63. endif()
  64. if(NOT TARGET Libva::drm)
  65. if(IS_ABSOLUTE "${LIBVA_DRM_LIBRARIES}")
  66. add_library(Libva::drm UNKNOWN IMPORTED)
  67. set_target_properties(Libva::drm PROPERTIES IMPORTED_LOCATION "${LIBVA_DRM_LIBRARIES}")
  68. else()
  69. add_library(Libva::drm INTERFACE IMPORTED)
  70. set_target_properties(Libva::drm PROPERTIES IMPORTED_LIBNAME "${LIBVA_DRM_LIBRARIES}")
  71. endif()
  72. set_target_properties(Libva::drm PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${LIBVA_INCLUDE_DIRS}")
  73. endif()
  74. if(NOT TARGET Libva::wayland)
  75. if(IS_ABSOLUTE "${LIBVA_WAYLAND_LIBRARIES}")
  76. add_library(Libva::wayland UNKNOWN IMPORTED)
  77. set_target_properties(Libva::wayland PROPERTIES IMPORTED_LOCATION "${LIBVA_WAYLAND_LIBRARIES}")
  78. else()
  79. add_library(Libva::wayland INTERFACE IMPORTED)
  80. set_target_properties(Libva::wayland PROPERTIES IMPORTED_LIBNAME "${LIBVA_WAYLAND_LIBRARIES}")
  81. endif()
  82. set_target_properties(Libva::wayland PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${LIBVA_INCLUDE_DIRS}")
  83. endif()
  84. if(NOT TARGET Libva::x11)
  85. if(IS_ABSOLUTE "${LIBVA_X11_LIBRARIES}")
  86. add_library(Libva::x11 UNKNOWN IMPORTED)
  87. set_target_properties(Libva::x11 PROPERTIES IMPORTED_LOCATION "${LIBVA_X11_LIBRARIES}")
  88. else()
  89. add_library(Libva::x11 INTERFACE IMPORTED)
  90. set_target_properties(Libva::x11 PROPERTIES IMPORTED_LIBNAME "${LIBVA_X11_LIBRARIES}")
  91. endif()
  92. set_target_properties(Libva::x11 PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${LIBVA_INCLUDE_DIRS}")
  93. endif()
  94. endif()