4 # Finds the OpenGLES library
6 # This will define the following target:
8 # ${APP_NAME_LC}::OpenGLES - The OpenGLES IMPORTED library
10 if(NOT TARGET ${APP_NAME_LC}::${CMAKE_FIND_PACKAGE_NAME})
11 find_package(PkgConfig)
13 pkg_check_modules(PC_OPENGLES glesv2 QUIET)
16 find_library(OPENGLES_gl_LIBRARY NAMES GLESv2 OpenGLES
17 HINTS ${PC_OPENGLES_LIBDIR} ${CMAKE_OSX_SYSROOT}/System/Library
18 PATH_SUFFIXES Frameworks)
19 find_path(OPENGLES_INCLUDE_DIR NAMES GLES2/gl2.h ES2/gl.h
20 HINTS ${PC_OPENGLES_INCLUDEDIR} ${OPENGLES_gl_LIBRARY}/Headers)
21 find_path(OPENGLES3_INCLUDE_DIR NAMES GLES3/gl3.h ES3/gl.h
22 HINTS ${PC_OPENGLES_INCLUDEDIR} ${OPENGLES_gl_LIBRARY}/Headers)
24 include(FindPackageHandleStandardArgs)
25 find_package_handle_standard_args(OpenGLES
26 REQUIRED_VARS OPENGLES_gl_LIBRARY OPENGLES_INCLUDE_DIR)
29 if(${OPENGLES_gl_LIBRARY} MATCHES ".+\.so$")
30 add_library(${APP_NAME_LC}::${CMAKE_FIND_PACKAGE_NAME} SHARED IMPORTED)
32 add_library(${APP_NAME_LC}::${CMAKE_FIND_PACKAGE_NAME} UNKNOWN IMPORTED)
35 set_target_properties(${APP_NAME_LC}::${CMAKE_FIND_PACKAGE_NAME} PROPERTIES
36 IMPORTED_LOCATION "${OPENGLES_gl_LIBRARY}"
37 INTERFACE_INCLUDE_DIRECTORIES "${OPENGLES_INCLUDE_DIR}"
38 IMPORTED_NO_SONAME TRUE)
40 if(OPENGLES3_INCLUDE_DIR)
41 set_property(TARGET ${APP_NAME_LC}::${CMAKE_FIND_PACKAGE_NAME} APPEND PROPERTY
42 INTERFACE_INCLUDE_DIRECTORIES "${OPENGLES3_INCLUDE_DIR}")
43 set_target_properties(${APP_NAME_LC}::${CMAKE_FIND_PACKAGE_NAME} PROPERTIES
44 INTERFACE_COMPILE_DEFINITIONS HAS_GLES=3)
46 set_target_properties(${APP_NAME_LC}::${CMAKE_FIND_PACKAGE_NAME} PROPERTIES
47 INTERFACE_COMPILE_DEFINITIONS HAS_GLES=2)