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)
12 pkg_check_modules(PC_GBM gbm QUIET)
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>
33 gbm_bo_map(NULL, 0, 0, 0, 0, GBM_BO_TRANSFER_WRITE, NULL, NULL);
37 check_c_source_compiles("#include <gbm.h>
41 gbm_surface_create_with_modifiers(NULL, 0, 0, 0, NULL, 0);
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")
52 set_property(TARGET ${APP_NAME_LC}::${CMAKE_FIND_PACKAGE_NAME} APPEND PROPERTY
53 INTERFACE_COMPILE_DEFINITIONS HAS_GBM_BO_MAP)
56 set_property(TARGET ${APP_NAME_LC}::${CMAKE_FIND_PACKAGE_NAME} APPEND PROPERTY
57 INTERFACE_COMPILE_DEFINITIONS HAS_GBM_MODIFIERS)