From 76ac3529242b4b4f10775a743bbda989de1ff92a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Fri, 22 Mar 2013 21:23:07 +0100 Subject: [PATCH] Added FindOpenGLES3.cmake module. Seems that Mesa has both ES2 and ES3 in the same libGLESv2.so. Weird. --- CMakeLists.txt | 4 +++- modules/FindOpenGLES3.cmake | 48 +++++++++++++++++++++++++++++++++++++ src/CMakeLists.txt | 4 +++- 3 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 modules/FindOpenGLES3.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 359a4b38e..6c4383966 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -76,8 +76,10 @@ endif() find_package(Corrade REQUIRED) if(NOT TARGET_GLES OR TARGET_DESKTOP_GLES) find_package(OpenGL REQUIRED) -else() +elseif(TARGET_GLES2) find_package(OpenGLES2 REQUIRED) +else() + find_package(OpenGLES3 REQUIRED) endif() if(NOT TARGET_GLES) find_package(GLEW REQUIRED) diff --git a/modules/FindOpenGLES3.cmake b/modules/FindOpenGLES3.cmake new file mode 100644 index 000000000..d4b160162 --- /dev/null +++ b/modules/FindOpenGLES3.cmake @@ -0,0 +1,48 @@ +# - Find OpenGL ES 3 +# +# This module defines: +# +# OPENGLES3_FOUND - True if OpenGL ES 3 library is found +# OPENGLES3_LIBRARY - OpenGL ES 3 library +# OPENGLES3_INCLUDE_DIR - Include dir +# + +# +# This file is part of Magnum. +# +# Copyright © 2010, 2011, 2012, 2013 Vladimír Vondruš +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. +# + +# Library +find_library(OPENGLES3_LIBRARY NAMES + GLESv2) # wtf? + +# Include dir +find_path(OPENGLES3_INCLUDE_DIR + NAMES gl3.h + PATH_SUFFIXES GLES3 +) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args("OpenGLES3" DEFAULT_MSG + OPENGLES3_LIBRARY + OPENGLES3_INCLUDE_DIR +) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 0d1df7c4d..7517288d5 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -158,8 +158,10 @@ set(Magnum_LIBS ${CORRADE_PLUGINMANAGER_LIBRARY}) if(NOT TARGET_GLES OR TARGET_DESKTOP_GLES) set(Magnum_LIBS ${Magnum_LIBS} ${OPENGL_gl_LIBRARY}) -else() +elseif(TARGET_GLES2) set(Magnum_LIBS ${Magnum_LIBS} ${OPENGLES2_LIBRARY}) +else() + set(Magnum_LIBS ${Magnum_LIBS} ${OPENGLES3_LIBRARY}) endif() if(NOT TARGET_GLES) set(Magnum_LIBS ${Magnum_LIBS} ${GLEW_LIBRARIES})