xref: /aosp_15_r20/external/deqp/targets/default/FindWayland.cmake (revision 35238bce31c2a825756842865a792f8cf7f89930)
1*35238bceSAndroid Build Coastguard Worker# Try to find Wayland on a Unix system
2*35238bceSAndroid Build Coastguard Worker#
3*35238bceSAndroid Build Coastguard Worker# This will define:
4*35238bceSAndroid Build Coastguard Worker#
5*35238bceSAndroid Build Coastguard Worker#   WAYLAND_FOUND       - True if Wayland is found
6*35238bceSAndroid Build Coastguard Worker#   WAYLAND_LIBRARIES   - Link these to use Wayland
7*35238bceSAndroid Build Coastguard Worker#   WAYLAND_INCLUDE_DIR - Include directory for Wayland
8*35238bceSAndroid Build Coastguard Worker#   WAYLAND_DEFINITIONS - Compiler flags for using Wayland
9*35238bceSAndroid Build Coastguard Worker#
10*35238bceSAndroid Build Coastguard Worker# In addition the following more fine grained variables will be defined:
11*35238bceSAndroid Build Coastguard Worker#
12*35238bceSAndroid Build Coastguard Worker#   WAYLAND_CLIENT_FOUND  WAYLAND_CLIENT_INCLUDE_DIR  WAYLAND_CLIENT_LIBRARIES
13*35238bceSAndroid Build Coastguard Worker#   WAYLAND_SERVER_FOUND  WAYLAND_SERVER_INCLUDE_DIR  WAYLAND_SERVER_LIBRARIES
14*35238bceSAndroid Build Coastguard Worker#   WAYLAND_EGL_FOUND     WAYLAND_EGL_INCLUDE_DIR     WAYLAND_EGL_LIBRARIES
15*35238bceSAndroid Build Coastguard Worker#
16*35238bceSAndroid Build Coastguard Worker# Copyright (c) 2013 Martin Gräßlin <[email protected]>
17*35238bceSAndroid Build Coastguard Worker#
18*35238bceSAndroid Build Coastguard Worker# Redistribution and use is allowed according to the terms of the BSD license.
19*35238bceSAndroid Build Coastguard Worker# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
20*35238bceSAndroid Build Coastguard Worker
21*35238bceSAndroid Build Coastguard WorkerIF (NOT WIN32)
22*35238bceSAndroid Build Coastguard Worker  IF (WAYLAND_INCLUDE_DIR AND WAYLAND_LIBRARIES)
23*35238bceSAndroid Build Coastguard Worker    # In the cache already
24*35238bceSAndroid Build Coastguard Worker    SET(WAYLAND_FIND_QUIETLY TRUE)
25*35238bceSAndroid Build Coastguard Worker  ENDIF ()
26*35238bceSAndroid Build Coastguard Worker
27*35238bceSAndroid Build Coastguard Worker  # Use pkg-config to get the directories and then use these values
28*35238bceSAndroid Build Coastguard Worker  # in the FIND_PATH() and FIND_LIBRARY() calls
29*35238bceSAndroid Build Coastguard Worker  FIND_PACKAGE(PkgConfig)
30*35238bceSAndroid Build Coastguard Worker  PKG_CHECK_MODULES(PKG_WAYLAND QUIET wayland-client wayland-server wayland-egl wayland-cursor)
31*35238bceSAndroid Build Coastguard Worker
32*35238bceSAndroid Build Coastguard Worker  SET(WAYLAND_DEFINITIONS ${PKG_WAYLAND_CFLAGS})
33*35238bceSAndroid Build Coastguard Worker
34*35238bceSAndroid Build Coastguard Worker  FIND_PATH(WAYLAND_CLIENT_INCLUDE_DIR  NAMES wayland-client.h HINTS ${PKG_WAYLAND_INCLUDE_DIRS})
35*35238bceSAndroid Build Coastguard Worker  FIND_PATH(WAYLAND_SERVER_INCLUDE_DIR  NAMES wayland-server.h HINTS ${PKG_WAYLAND_INCLUDE_DIRS})
36*35238bceSAndroid Build Coastguard Worker  FIND_PATH(WAYLAND_EGL_INCLUDE_DIR     NAMES wayland-egl.h    HINTS ${PKG_WAYLAND_INCLUDE_DIRS})
37*35238bceSAndroid Build Coastguard Worker  FIND_PATH(WAYLAND_CURSOR_INCLUDE_DIR  NAMES wayland-cursor.h HINTS ${PKG_WAYLAND_INCLUDE_DIRS})
38*35238bceSAndroid Build Coastguard Worker
39*35238bceSAndroid Build Coastguard Worker  FIND_LIBRARY(WAYLAND_CLIENT_LIBRARIES NAMES wayland-client   HINTS ${PKG_WAYLAND_LIBRARY_DIRS})
40*35238bceSAndroid Build Coastguard Worker  FIND_LIBRARY(WAYLAND_SERVER_LIBRARIES NAMES wayland-server   HINTS ${PKG_WAYLAND_LIBRARY_DIRS})
41*35238bceSAndroid Build Coastguard Worker  FIND_LIBRARY(WAYLAND_EGL_LIBRARIES    NAMES wayland-egl      HINTS ${PKG_WAYLAND_LIBRARY_DIRS})
42*35238bceSAndroid Build Coastguard Worker  FIND_LIBRARY(WAYLAND_CURSOR_LIBRARIES NAMES wayland-cursor   HINTS ${PKG_WAYLAND_LIBRARY_DIRS})
43*35238bceSAndroid Build Coastguard Worker
44*35238bceSAndroid Build Coastguard Worker  set(WAYLAND_INCLUDE_DIR ${WAYLAND_CLIENT_INCLUDE_DIR} ${WAYLAND_SERVER_INCLUDE_DIR} ${WAYLAND_EGL_INCLUDE_DIR} ${WAYLAND_CURSOR_INCLUDE_DIR})
45*35238bceSAndroid Build Coastguard Worker
46*35238bceSAndroid Build Coastguard Worker  set(WAYLAND_LIBRARIES ${WAYLAND_CLIENT_LIBRARIES} ${WAYLAND_SERVER_LIBRARIES} ${WAYLAND_EGL_LIBRARIES} ${WAYLAND_CURSOR_LIBRARIES})
47*35238bceSAndroid Build Coastguard Worker
48*35238bceSAndroid Build Coastguard Worker  list(REMOVE_DUPLICATES WAYLAND_INCLUDE_DIR)
49*35238bceSAndroid Build Coastguard Worker
50*35238bceSAndroid Build Coastguard Worker  include(FindPackageHandleStandardArgs)
51*35238bceSAndroid Build Coastguard Worker
52*35238bceSAndroid Build Coastguard Worker  # Hide warnings about this module defining packages that don't match the module name
53*35238bceSAndroid Build Coastguard Worker  set(FPHSA_NAME_MISMATCHED TRUE)
54*35238bceSAndroid Build Coastguard Worker
55*35238bceSAndroid Build Coastguard Worker  FIND_PACKAGE_HANDLE_STANDARD_ARGS(WAYLAND_CLIENT  DEFAULT_MSG  WAYLAND_CLIENT_LIBRARIES  WAYLAND_CLIENT_INCLUDE_DIR)
56*35238bceSAndroid Build Coastguard Worker  FIND_PACKAGE_HANDLE_STANDARD_ARGS(WAYLAND_SERVER  DEFAULT_MSG  WAYLAND_SERVER_LIBRARIES  WAYLAND_SERVER_INCLUDE_DIR)
57*35238bceSAndroid Build Coastguard Worker  FIND_PACKAGE_HANDLE_STANDARD_ARGS(WAYLAND_EGL     DEFAULT_MSG  WAYLAND_EGL_LIBRARIES     WAYLAND_EGL_INCLUDE_DIR)
58*35238bceSAndroid Build Coastguard Worker  FIND_PACKAGE_HANDLE_STANDARD_ARGS(WAYLAND_CURSOR  DEFAULT_MSG  WAYLAND_CURSOR_LIBRARIES  WAYLAND_CURSOR_INCLUDE_DIR)
59*35238bceSAndroid Build Coastguard Worker  FIND_PACKAGE_HANDLE_STANDARD_ARGS(WAYLAND         DEFAULT_MSG  WAYLAND_LIBRARIES         WAYLAND_INCLUDE_DIR)
60*35238bceSAndroid Build Coastguard Worker
61*35238bceSAndroid Build Coastguard Worker  MARK_AS_ADVANCED(
62*35238bceSAndroid Build Coastguard Worker        WAYLAND_INCLUDE_DIR         WAYLAND_LIBRARIES
63*35238bceSAndroid Build Coastguard Worker        WAYLAND_CLIENT_INCLUDE_DIR  WAYLAND_CLIENT_LIBRARIES
64*35238bceSAndroid Build Coastguard Worker        WAYLAND_SERVER_INCLUDE_DIR  WAYLAND_SERVER_LIBRARIES
65*35238bceSAndroid Build Coastguard Worker        WAYLAND_EGL_INCLUDE_DIR     WAYLAND_EGL_LIBRARIES
66*35238bceSAndroid Build Coastguard Worker        WAYLAND_CURSOR_INCLUDE_DIR  WAYLAND_CURSOR_LIBRARIES
67*35238bceSAndroid Build Coastguard Worker  )
68*35238bceSAndroid Build Coastguard Worker
69*35238bceSAndroid Build Coastguard WorkerENDIF ()
70