Merge pull request #25883 from CrystalP/fix-slowscan
[xbmc.git] / cmake / modules / FindGBM.cmake
blob30af02182991079894b3e15ac3acf3fce846991f
1 # FindGBM
2 # ----------
3 # Finds the GBM library
5 # This will define the following target:
7 #   ${APP_NAME_LC}::GBM   - The GBM library
9 if(NOT TARGET ${APP_NAME_LC}::${CMAKE_FIND_PACKAGE_NAME})
10   find_package(PkgConfig)
11   if(PKG_CONFIG_FOUND)
12     pkg_check_modules(PC_GBM gbm QUIET)
13   endif()
15   find_path(GBM_INCLUDE_DIR NAMES gbm.h
16                             HINTS ${PC_GBM_INCLUDEDIR})
17   find_library(GBM_LIBRARY NAMES gbm
18                            HINTS ${PC_GBM_LIBDIR})
20   set(GBM_VERSION ${PC_GBM_VERSION})
22   include(FindPackageHandleStandardArgs)
23   find_package_handle_standard_args(GBM
24                                     REQUIRED_VARS GBM_LIBRARY GBM_INCLUDE_DIR
25                                     VERSION_VAR GBM_VERSION)
27   include(CheckCSourceCompiles)
28   set(CMAKE_REQUIRED_LIBRARIES ${GBM_LIBRARY})
29   check_c_source_compiles("#include <gbm.h>
31                            int main()
32                            {
33                              gbm_bo_map(NULL, 0, 0, 0, 0, GBM_BO_TRANSFER_WRITE, NULL, NULL);
34                            }
35                            " GBM_HAS_BO_MAP)
37   check_c_source_compiles("#include <gbm.h>
39                            int main()
40                            {
41                              gbm_surface_create_with_modifiers(NULL, 0, 0, 0, NULL, 0);
42                            }
43                            " GBM_HAS_MODIFIERS)
45   if(GBM_FOUND)
46     add_library(${APP_NAME_LC}::${CMAKE_FIND_PACKAGE_NAME} UNKNOWN IMPORTED)
47     set_target_properties(${APP_NAME_LC}::${CMAKE_FIND_PACKAGE_NAME} PROPERTIES
48                                                                      IMPORTED_LOCATION "${GBM_LIBRARY}"
49                                                                      INTERFACE_INCLUDE_DIRECTORIES "${GBM_INCLUDE_DIR}"
50                                                                      INTERFACE_COMPILE_DEFINITIONS "HAVE_GBM")
51     if(GBM_HAS_BO_MAP)
52       set_property(TARGET ${APP_NAME_LC}::${CMAKE_FIND_PACKAGE_NAME} APPEND PROPERTY
53                                                                             INTERFACE_COMPILE_DEFINITIONS HAS_GBM_BO_MAP)
54     endif()
55     if(GBM_HAS_MODIFIERS)
56       set_property(TARGET ${APP_NAME_LC}::${CMAKE_FIND_PACKAGE_NAME} APPEND PROPERTY
57                                                                             INTERFACE_COMPILE_DEFINITIONS HAS_GBM_MODIFIERS)
58     endif()
59   endif()
60 endif()