1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
#.rst:
# FindOpenGLES
# ------------
# Finds the OpenGLES library
#
# This will define the following target:
#
# OpenGL::GLES - The OpenGLES IMPORTED library
if(NOT TARGET OpenGL::GLES)
find_package(PkgConfig)
if(PKG_CONFIG_FOUND)
pkg_check_modules(PC_OPENGLES glesv2 QUIET)
endif()
find_library(OPENGLES_gl_LIBRARY NAMES GLESv2 OpenGLES
HINTS ${PC_OPENGLES_LIBDIR} ${CMAKE_OSX_SYSROOT}/System/Library
PATH_SUFFIXES Frameworks
NO_CACHE)
find_path(OPENGLES_INCLUDE_DIR NAMES GLES2/gl2.h ES2/gl.h
HINTS ${PC_OPENGLES_INCLUDEDIR} ${OPENGLES_gl_LIBRARY}/Headers
NO_CACHE)
find_path(OPENGLES3_INCLUDE_DIR NAMES GLES3/gl3.h ES3/gl.h
HINTS ${PC_OPENGLES_INCLUDEDIR} ${OPENGLES_gl_LIBRARY}/Headers
NO_CACHE)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(OpenGLES
REQUIRED_VARS OPENGLES_gl_LIBRARY OPENGLES_INCLUDE_DIR)
if(OPENGLES_FOUND)
if(CORE_SYSTEM_NAME STREQUAL darwin_embedded)
# Cmake only added support for Frameworks as the IMPORTED_LOCATION as of 3.28
# https://gitlab.kitware.com/cmake/cmake/-/merge_requests/8586
# Until we move to cmake 3.28 as minimum, explicitly set to binary inside framework
if(OPENGLES_gl_LIBRARY MATCHES "/([^/]+)\\.framework$")
set(_gles_fw "${OPENGLES_gl_LIBRARY}/${CMAKE_MATCH_1}")
if(EXISTS "${_gles_fw}.tbd")
string(APPEND _gles_fw ".tbd")
endif()
set(OPENGLES_gl_LIBRARY ${_gles_fw})
endif()
endif()
if(${OPENGLES_gl_LIBRARY} MATCHES ".+\.so$")
add_library(OpenGL::GLES SHARED IMPORTED)
else()
add_library(OpenGL::GLES UNKNOWN IMPORTED)
endif()
set_target_properties(OpenGL::GLES PROPERTIES
IMPORTED_LOCATION "${OPENGLES_gl_LIBRARY}"
INTERFACE_INCLUDE_DIRECTORIES "${OPENGLES_INCLUDE_DIR}"
IMPORTED_NO_SONAME TRUE)
if(OPENGLES3_INCLUDE_DIR)
set_property(TARGET OpenGL::GLES APPEND PROPERTY
INTERFACE_INCLUDE_DIRECTORIES "${OPENGLES3_INCLUDE_DIR}")
set_target_properties(OpenGL::GLES PROPERTIES
INTERFACE_COMPILE_DEFINITIONS HAS_GLES=3)
else()
set_target_properties(OpenGL::GLES PROPERTIES
INTERFACE_COMPILE_DEFINITIONS HAS_GLES=2)
endif()
set_property(GLOBAL APPEND PROPERTY INTERNAL_DEPS_PROP OpenGL::GLES)
endif()
endif()
|