Files
LookingGlass/client/cmake/FindANGLE.cmake
Geoffrey McRae 57f18d7e80 [client] windows: add native clang-cl build
Build the Windows client against the MSVC ABI while retaining clang
language support. Use vcpkg for ANGLE and libsamplerate, and build
MsQuic with its bundled static OpenSSL.
2026-11-06 14:40:25 +11:00

84 lines
2.0 KiB
CMake

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)