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