From a2ada35b5c768e8efe9b51a41f84ec6e18ea805c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Gr=C3=A4=C3=9Flin?= Date: Mon, 24 Feb 2014 14:00:57 +0100 Subject: Add a FindEGL module This module finds the egl library through pkg-config. REVIEW: 116014 --- find-modules/FindEGL.cmake | 79 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 find-modules/FindEGL.cmake diff --git a/find-modules/FindEGL.cmake b/find-modules/FindEGL.cmake new file mode 100644 index 00000000..6237f5cb --- /dev/null +++ b/find-modules/FindEGL.cmake @@ -0,0 +1,79 @@ +# Try to find EGL on a Unix system +# +# This will define: +# +# EGL_FOUND - True if EGL is available +# EGL_LIBRARIES - Link these to use EGL +# EGL_INCLUDE_DIRS - Include directory for EGL +# EGL_DEFINITIONS - Compiler flags for using EGL +# +# Additionally, the following imported targets will be defined: +# +# EGL::EGL +# +# Copyright (c) 2014 Martin Gräßlin +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + +if(CMAKE_VERSION VERSION_LESS 2.8.12) + message(FATAL_ERROR "CMake 2.8.12 is required by FindEGL.cmake") +endif() +if(CMAKE_MINIMUM_REQUIRED_VERSION VERSION_LESS 2.8.12) + message(AUTHOR_WARNING "Your project should require at least CMake 2.8.12 to use FindEGL.cmake") +endif() + +if(NOT WIN32) + # Use pkg-config to get the directories and then use these values + # in the FIND_PATH() and FIND_LIBRARY() calls + find_package(PkgConfig) + pkg_check_modules(PKG_EGL QUIET ${pkgConfigModules}) + + set(EGL_DEFINITIONS ${PKG_EGL_CFLAGS_OTHER}) + + find_path(EGL_INCLUDE_DIR + NAMES + egl.h + HINTS + ${PKG_EGL_INCLUDE_DIRS} + PATH_SUFFIXES + EGL + ) + find_library(EGL_LIBRARY + NAMES + EGL + HINTS + ${PKG_EGL_LIBRARY_DIRS} + ) + + set(EGL_LIBRARIES ${EGL_LIBRARY}) + set(EGL_INCLUDE_DIRS ${EGL_INCLUDE_DIR}) + + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(EGL + FOUND_VAR + EGL_FOUND + REQUIRED_VARS + EGL_LIBRARY + EGL_INCLUDE_DIR + ) + + if(EGL_FOUND AND NOT TARGET EGL::EGL) + add_library(EGL::EGL UNKNOWN IMPORTED) + set_target_properties(EGL::EGL PROPERTIES + IMPORTED_LOCATION "${EGL_LIBRARY}" + INTERFACE_COMPILE_OPTIONS "${EGL_DEFINITIONS}" + INTERFACE_INCLUDE_DIRECTORIES "${EGL_INCLUDE_DIR}" + ) + endif() + +else() + message(STATUS "FindEGL.cmake cannot find EGL on Windows systems. Try finding WGL instead.") + set(EGL_FOUND FALSE) +endif() + +include(FeatureSummary) +set_package_properties(EGL PROPERTIES + URL "https://www.khronos.org/egl/" + DESCRIPTION "EGL provides a platform-agnostic mechanism for creating rendering surfaces for use with other graphics libraries, such as OpenGL|ES and OpenVG." +) -- cgit v1.2.1