1#-------------------------------------------------------------------
2# This file is part of the CMake build system for OGRE
3#     (Object-oriented Graphics Rendering Engine)
4# For the latest info, see http://www.ogre3d.org/
5#
6# The contents of this file are placed in the public domain. Feel
7# free to make use of it in any way you like.
8#-------------------------------------------------------------------
9
10# - Try to find OpenGLES and EGL
11# If using ARM Mali emulation you can specify the parent directory that contains the bin and include directories by
12# setting the MALI_SDK_ROOT variable in the environment.
13#
14# For AMD emulation use the AMD_SDK_ROOT variable
15#
16# Once done this will define
17#
18#  OPENGLES2_FOUND        - system has OpenGLES
19#  OPENGLES2_INCLUDE_DIR  - the GL include directory
20#  OPENGLES2_LIBRARIES    - Link these to use OpenGLES
21#
22#  EGL_FOUND        - system has EGL
23#  EGL_INCLUDE_DIR  - the EGL include directory
24#  EGL_LIBRARIES    - Link these to use EGL
25
26#include(FindPkgMacros)
27
28IF (WIN32)
29  IF (CYGWIN)
30
31    FIND_PATH(OPENGLES2_INCLUDE_DIR GLES2/gl2.h )
32
33    FIND_LIBRARY(OPENGLES2_gl_LIBRARY libGLESv2 )
34
35  ELSE (CYGWIN)
36
37    IF(BORLAND)
38      SET (OPENGLES2_gl_LIBRARY import32 CACHE STRING "OpenGL ES 2.x library for win32")
39    ELSE(BORLAND)
40        #getenv_path(AMD_SDK_ROOT)
41        #getenv_path(MALI_SDK_ROOT)
42
43        SET(POWERVR_SDK_PATH "C:/Imagination/PowerVR/GraphicsSDK/SDK_3.1/Builds")
44        FIND_PATH(OPENGLES2_INCLUDE_DIR GLES2/gl2.h
45                        ${ENV_AMD_SDK_ROOT}/include
46                        ${ENV_MALI_SDK_ROOT}/include
47                        ${POWERVR_SDK_PATH}/Include
48                        "C:/Imagination Technologies/PowerVR Insider SDK/OGLES2_WINDOWS_X86EMULATION_2.10/Builds/OGLES2/Include"
49        )
50
51        FIND_PATH(EGL_INCLUDE_DIR EGL/egl.h
52                        ${ENV_AMD_SDK_ROOT}/include
53                        ${ENV_MALI_SDK_ROOT}/include
54                        ${POWERVR_SDK_PATH}/Include
55                        "C:/Imagination Technologies/PowerVR Insider SDK/OGLES2_WINDOWS_X86EMULATION_2.10/Builds/OGLES2/Include"
56        )
57
58        FIND_LIBRARY(OPENGLES2_gl_LIBRARY
59            NAMES libGLESv2
60            PATHS ${ENV_AMD_SDK_ROOT}/x86
61                  ${ENV_MALI_SDK_ROOT}/bin
62                  ${POWERVR_SDK_PATH}/Windows/x86_32/Lib
63                 "C:/Imagination Technologies/PowerVR Insider SDK/OGLES2_WINDOWS_X86EMULATION_2.10/Builds/OGLES2/WindowsX86/Lib"
64        )
65
66        FIND_LIBRARY(EGL_egl_LIBRARY
67            NAMES libEGL
68            PATHS ${ENV_AMD_SDK_ROOT}/x86
69                  ${ENV_MALI_SDK_ROOT}/bin
70                  ${POWERVR_SDK_PATH}/Windows/x86_32/Lib
71                 "C:/Imagination Technologies/PowerVR Insider SDK/OGLES2_WINDOWS_X86EMULATION_2.10/Builds/OGLES2/WindowsX86/Lib"
72        )
73    ENDIF(BORLAND)
74
75  ENDIF (CYGWIN)
76
77ELSE (WIN32)
78
79  IF (APPLE)
80
81    #create_search_paths(/Developer/Platforms)
82    #findpkg_framework(OpenGLES2)
83    #set(OPENGLES2_gl_LIBRARY "-framework OpenGLES")
84
85  ELSE(APPLE)
86    #getenv_path(AMD_SDK_ROOT)
87    #getenv_path(MALI_SDK_ROOT)
88
89    FIND_PATH(OPENGLES2_INCLUDE_DIR GLES2/gl2.h
90      ${ENV_AMD_SDK_ROOT}/include
91      ${ENV_MALI_SDK_ROOT}/include
92      /opt/Imagination/PowerVR/GraphicsSDK/SDK_3.1/Builds/Include
93      /opt/vc/include
94      /usr/openwin/share/include
95      /opt/graphics/OpenGL/include /usr/X11R6/include
96      /usr/include
97    )
98
99    FIND_LIBRARY(OPENGLES2_gl_LIBRARY
100      NAMES GLESv2
101      PATHS ${ENV_AMD_SDK_ROOT}/x86
102            ${ENV_MALI_SDK_ROOT}/bin
103            /opt/Imagination/PowerVR/GraphicsSDK/SDK_3.1/Builds/Linux/x86_32/Lib
104            /opt/vc/lib
105            /opt/graphics/OpenGL/lib
106            /usr/openwin/lib
107            /usr/shlib /usr/X11R6/lib
108            /usr/lib
109    )
110
111    FIND_PATH(EGL_INCLUDE_DIR EGL/egl.h
112      ${ENV_AMD_SDK_ROOT}/include
113      ${ENV_MALI_SDK_ROOT}/include
114      /opt/Imagination/PowerVR/GraphicsSDK/SDK_3.1/Builds/Include
115      /opt/vc/include
116      /usr/openwin/share/include
117      /opt/graphics/OpenGL/include /usr/X11R6/include
118      /usr/include
119    )
120
121    FIND_LIBRARY(EGL_egl_LIBRARY
122      NAMES EGL
123      PATHS ${ENV_AMD_SDK_ROOT}/x86
124            ${ENV_MALI_SDK_ROOT}/bin
125            /opt/Imagination/PowerVR/GraphicsSDK/SDK_3.1/Builds/Linux/x86_32/Lib
126            /opt/vc/lib
127            /opt/graphics/OpenGL/lib
128            /usr/openwin/lib
129            /usr/shlib /usr/X11R6/lib
130            /usr/lib
131    )
132
133    # On Unix OpenGL most certainly always requires X11.
134    # Feel free to tighten up these conditions if you don't
135    # think this is always true.
136    # It's not true on OSX.
137
138    #IF (OPENGLES2_gl_LIBRARY)
139    #  IF(NOT X11_FOUND)
140    #    INCLUDE(FindX11)
141    #  ENDIF(NOT X11_FOUND)
142    #  IF (X11_FOUND)
143    #    IF (NOT APPLE)
144    #      SET (OPENGLES2_LIBRARIES ${X11_LIBRARIES})
145    #    ENDIF (NOT APPLE)
146    #  ENDIF (X11_FOUND)
147    #ENDIF (OPENGLES2_gl_LIBRARY)
148
149  ENDIF(APPLE)
150ENDIF (WIN32)
151
152SET( OPENGLES2_FOUND "YES" )
153IF(OPENGLES2_gl_LIBRARY AND EGL_egl_LIBRARY)
154
155    SET( OPENGLES2_LIBRARIES ${OPENGLES2_gl_LIBRARY} ${OPENGLES2_LIBRARIES})
156    SET( EGL_LIBRARIES ${EGL_egl_LIBRARY} ${EGL_LIBRARIES})
157    SET( OPENGLES2_FOUND "YES" )
158
159ENDIF(OPENGLES2_gl_LIBRARY AND EGL_egl_LIBRARY)
160
161MARK_AS_ADVANCED(
162  OPENGLES2_INCLUDE_DIR
163  OPENGLES2_gl_LIBRARY
164  EGL_INCLUDE_DIR
165  EGL_egl_LIBRARY
166)
167
168INCLUDE(FindPackageHandleStandardArgs)
169
170FIND_PACKAGE_HANDLE_STANDARD_ARGS(OPENGLES2 REQUIRED_VARS OPENGLES2_LIBRARIES OPENGLES2_INCLUDE_DIR)
171