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