diff options
| author | Martin Gräßlin <mgraesslin@kde.org> | 2014-02-24 14:00:57 +0100 | 
|---|---|---|
| committer | Martin Gräßlin <mgraesslin@kde.org> | 2014-02-25 13:48:23 +0100 | 
| commit | a2ada35b5c768e8efe9b51a41f84ec6e18ea805c (patch) | |
| tree | 256278fa06e0551866df9452034d5cd8d3212668 /find-modules | |
| parent | dfbbd75577d60299706e95ced5c4a245438f6a03 (diff) | |
| download | extra-cmake-modules-a2ada35b5c768e8efe9b51a41f84ec6e18ea805c.tar.gz extra-cmake-modules-a2ada35b5c768e8efe9b51a41f84ec6e18ea805c.tar.bz2 | |
Add a FindEGL module
This module finds the egl library through pkg-config.
REVIEW: 116014
Diffstat (limited to 'find-modules')
| -rw-r--r-- | find-modules/FindEGL.cmake | 79 | 
1 files changed, 79 insertions, 0 deletions
| 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 <mgraesslin@kde.org> +# +# 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." +) | 
