set(ANGLE_ROOT "" CACHE PATH "Root of a prebuilt ANGLE distribution") if(ANGLE_ROOT) set(_ANGLE_HINTS HINTS "${ANGLE_ROOT}") set(_ANGLE_FIND_POLICY NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH) endif() find_path(ANGLE_EGL_INCLUDE_DIR NAMES EGL/egl.h ${_ANGLE_HINTS} PATH_SUFFIXES include ${_ANGLE_FIND_POLICY} ) find_path(ANGLE_GLES_INCLUDE_DIR NAMES GLES3/gl32.h ${_ANGLE_HINTS} PATH_SUFFIXES include ${_ANGLE_FIND_POLICY} ) find_library(ANGLE_EGL_LIBRARY NAMES EGL libEGL ${_ANGLE_HINTS} PATH_SUFFIXES lib lib64 ${_ANGLE_FIND_POLICY} ) find_library(ANGLE_GLESV2_LIBRARY NAMES GLESv2 libGLESv2 ${_ANGLE_HINTS} PATH_SUFFIXES lib lib64 ${_ANGLE_FIND_POLICY} ) include(FindPackageHandleStandardArgs) find_package_handle_standard_args(ANGLE REQUIRED_VARS ANGLE_EGL_INCLUDE_DIR ANGLE_GLES_INCLUDE_DIR ANGLE_EGL_LIBRARY ANGLE_GLESV2_LIBRARY ) if(ANGLE_FOUND AND MSVC) foreach(_ANGLE_LIBRARY IN ITEMS "${ANGLE_EGL_LIBRARY}" "${ANGLE_GLESV2_LIBRARY}") if(_ANGLE_LIBRARY MATCHES "\\.(a|dll\\.a)$") message(FATAL_ERROR "The clang-cl client requires MSVC-ABI ANGLE .lib files; found " "${_ANGLE_LIBRARY}") endif() endforeach() endif() mark_as_advanced( ANGLE_EGL_INCLUDE_DIR ANGLE_GLES_INCLUDE_DIR ANGLE_EGL_LIBRARY ANGLE_GLESV2_LIBRARY ) if(ANGLE_FOUND AND NOT TARGET ANGLE::GLESv2) add_library(ANGLE::GLESv2 UNKNOWN IMPORTED) set_target_properties(ANGLE::GLESv2 PROPERTIES IMPORTED_LOCATION "${ANGLE_GLESV2_LIBRARY}" INTERFACE_INCLUDE_DIRECTORIES "${ANGLE_GLES_INCLUDE_DIR}" ) endif() if(ANGLE_FOUND AND NOT TARGET ANGLE::EGL) add_library(ANGLE::EGL UNKNOWN IMPORTED) set_target_properties(ANGLE::EGL PROPERTIES IMPORTED_LOCATION "${ANGLE_EGL_LIBRARY}" INTERFACE_INCLUDE_DIRECTORIES "${ANGLE_EGL_INCLUDE_DIR}" INTERFACE_LINK_LIBRARIES ANGLE::GLESv2 ) endif() unset(_ANGLE_HINTS) unset(_ANGLE_FIND_POLICY) unset(_ANGLE_LIBRARY)