1
# Finds the Wayland client libraries
2
# Also supports components "protocols" and "scanner"
4
find_package(PkgConfig QUIET)
6
set(WaylandModules wayland-client)
7
if(protocols IN_LIST Wayland_FIND_COMPONENTS)
8
list(APPEND WaylandModules wayland-protocols)
11
if(scanner IN_LIST Wayland_FIND_COMPONENTS)
12
list(APPEND WaylandModules wayland-scanner)
15
pkg_check_modules(PKG_Wayland QUIET ${WaylandModules})
17
set(Wayland_VERSION ${PKG_Wayland_VERSION})
18
set(Wayland_DEFINITIONS ${PKG_Wayland_CFLAGS})
19
mark_as_advanced(Wayland_DEFINITIONS)
21
find_path(Wayland_CLIENT_INCLUDE_DIR NAMES wayland-client.h HINTS ${PKG_Wayland_INCLUDE_DIRS})
22
find_library(Wayland_CLIENT_LIBRARIES NAMES wayland-client HINTS ${PKG_Wayland_LIBRARY_DIRS})
23
mark_as_advanced(Wayland_CLIENT_INCLUDE_DIR Wayland_CLIENT_LIBRARIES)
25
if(protocols IN_LIST Wayland_FIND_COMPONENTS)
26
pkg_get_variable(Wayland_PROTOCOLS_DATADIR wayland-protocols pkgdatadir)
27
mark_as_advanced(Wayland_PROTOCOLS_DATADIR)
30
if(scanner IN_LIST Wayland_FIND_COMPONENTS)
31
pkg_get_variable(Wayland_SCANNER_EXECUTABLE_DIR wayland-scanner bindir)
32
find_program(Wayland_SCANNER_EXECUTABLE NAMES wayland-scanner HINTS ${Wayland_SCANNER_EXECUTABLE_DIR})
33
mark_as_advanced(Wayland_SCANNER_EXECUTABLE Wayland_SCANNER_EXECUTABLE_DIR)
36
set(Wayland_INCLUDE_DIR ${Wayland_CLIENT_INCLUDE_DIR})
37
set(Wayland_LIBRARIES ${Wayland_CLIENT_LIBRARIES})
38
set(Wayland_DATADIR ${Wayland_PROTOCOLS_DATADIR})
40
list(REMOVE_DUPLICATES Wayland_INCLUDE_DIR)
42
include(FindPackageHandleStandardArgs)
44
find_package_handle_standard_args(Wayland
45
FOUND_VAR Wayland_FOUND
46
VERSION_VAR Wayland_VERSION
47
REQUIRED_VARS Wayland_LIBRARIES)
49
if (Wayland_FOUND AND NOT TARGET Wayland::Client)
50
add_library(Wayland::Client UNKNOWN IMPORTED)
51
set_target_properties(Wayland::Client PROPERTIES
52
INTERFACE_INCLUDE_DIRECTORIES "${Wayland_CLIENT_INCLUDE_DIR}"
53
IMPORTED_LOCATION "${Wayland_CLIENT_LIBRARIES}")
56
if (Wayland_SCANNER_EXECUTABLE AND NOT TARGET Wayland::Scanner)
57
add_executable(Wayland::Scanner IMPORTED)
58
set_target_properties(Wayland::Scanner PROPERTIES
59
IMPORTED_LOCATION "${Wayland_SCANNER_EXECUTABLE}")