aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrobmikh <rob.mikh@outlook.com>2018-06-12 23:56:37 -0700
committerrobmikh <rob.mikh@outlook.com>2018-06-12 23:56:37 -0700
commit0f39ed5af6b46a7d9fb472becd5d5464e033b71a (patch)
tree3ae19f19088ee885564a285c7f4ead5a08618a64
parentc0555b0b3353c8ab37c1c9ba77ecdb87a44791b0 (diff)
downloadvcpkg-0f39ed5af6b46a7d9fb472becd5d5464e033b71a.tar.gz
vcpkg-0f39ed5af6b46a7d9fb472becd5d5464e033b71a.zip
Test all platforms
-rw-r--r--ports/angle/CMakeLists.txt580
1 files changed, 292 insertions, 288 deletions
diff --git a/ports/angle/CMakeLists.txt b/ports/angle/CMakeLists.txt
index 4953cac27..07a538f7a 100644
--- a/ports/angle/CMakeLists.txt
+++ b/ports/angle/CMakeLists.txt
@@ -1,288 +1,292 @@
-cmake_minimum_required(VERSION 3.8)
-project(angle CXX)
-
-if(WIN32 AND NOT WINDOWS_STORE)
- set(WINDOWS_DESKTOP 1)
-else()
- set(WINDOWS_DESKTOP 0)
-endif()
-if (WINDOWS_DESKTOP OR WINDOWS_STORE)
- set(WINDOWS_ANY 1)
-else()
- set(WINDOWS_ANY 0)
-endif()
-
-if(UNIX AND NOT APPLE)
- set(LINUX 1)
-else()
- set(LINUX 0)
-endif()
-
-if(WINDOWS_ANY)
- add_compile_options(/d2guard4 /Wv:18 /guard:cf)
-else()
- add_compile_options(-std=c++17 -fPIC)
-endif()
-
-set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS}")
-set(CMAKE_STATIC_LIBRARY_PREFIX "")
-
-add_definitions(
- -D_CRT_SECURE_NO_DEPRECATE
- -D_SCL_SECURE_NO_WARNINGS
- -D_HAS_EXCEPTIONS=0
- -DNOMINMAX
- -DANGLE_STANDALONE_BUILD
- -DANGLE_ENABLE_DEBUG_ANNOTATIONS
-)
-
-configure_file(commit.h include/id/commit.h COPYONLY)
-include_directories(include src ${CMAKE_CURRENT_BINARY_DIR}/include)
-
-##########
-# angle::common
-if(WINDOWS_ANY)
- set(ANGLE_COMMON_PLATFORM_FILTER "_linux|_mac")
-elseif(LINUX)
- set(ANGLE_COMMON_PLATFORM_FILTER "_win|_mac")
-elseif(APPLE)
- set(ANGLE_COMMON_PLATFORM_FILTER "_linux|_win")
-endif()
-file(GLOB ANGLE_COMMON_SOURCES "src/common/*.h" "src/common/*.inl" "src/common/*.cpp" "src/common/third_party/base/*.h")
-list(FILTER ANGLE_COMMON_SOURCES EXCLUDE REGEX "_unittest|event_tracer|${ANGLE_COMMON_PLATFORM_FILTER}")
-add_library(angle_common STATIC ${ANGLE_COMMON_SOURCES})
-target_include_directories(angle_common PUBLIC src/common/third_party/base)
-add_library(angle::common ALIAS angle_common)
-
-##########
-# angle::image_util
-file(GLOB ANGLE_IMAGE_UTIL_SOURCES "src/image_util/*.h" "src/image_util/*.inl" "src/image_util/*.cpp")
-add_library(angle_image_util STATIC ${ANGLE_IMAGE_UTIL_SOURCES})
-target_link_libraries(angle_image_util PRIVATE angle::common)
-add_library(angle::image_util ALIAS angle_image_util)
-
-##########
-# angle::translator
-file(GLOB TRANSLATOR_SOURCES
- "src/compiler/translator/glslang.l"
- "src/compiler/translator/glslang.y"
- "src/compiler/translator/*.h"
- "src/compiler/translator/*.cpp"
- "src/third_party/compiler/ArrayBoundsClamper.cpp"
-)
-add_library(angle_translator STATIC ${TRANSLATOR_SOURCES})
-target_compile_definitions(angle_translator PUBLIC
- -DANGLE_ENABLE_ESSL
- -DANGLE_ENABLE_GLSL
- -DANGLE_ENABLE_HLSL
-)
-target_link_libraries(angle_translator PRIVATE angle::common)
-add_library(angle::translator ALIAS angle_translator)
-
-##########
-# angle::preprocessor
-file(GLOB PREPROCESSOR_SOURCES
- "src/compiler/preprocessor/*.h"
- "src/compiler/preprocessor/*.cpp"
-)
-add_library(angle_preprocessor STATIC ${PREPROCESSOR_SOURCES})
-target_link_libraries(angle_preprocessor PRIVATE angle::common)
-add_library(angle::preprocessor ALIAS angle_preprocessor)
-
-##########
-# libANGLE
-
-## OpenGL Renderer
-if(WINDOWS_DESKTOP OR LINUX OR APPLE)
- if(WINDOWS_DESKTOP)
- set(ANGLE_RENDERER_OPENGL_WGL
- "src/libANGLE/renderer/gl/wgl/*.cpp"
- "src/libANGLE/renderer/gl/wgl/*.inl"
- "src/libANGLE/renderer/gl/wgl/*.h"
- )
- else()
- set(ANGLE_RENDERER_OPENGL_WGL )
- endif()
-
- file(GLOB LIBANGLE_GL_SOURCES
- "src/libANGLE/renderer/gl/*.cpp"
- "src/libANGLE/renderer/gl/*.inl"
- "src/libANGLE/renderer/gl/*.h"
- ${ANGLE_RENDERER_OPENGL_WGL}
- )
- list(FILTER LIBANGLE_GL_SOURCES EXCLUDE REGEX "_unittest")
- add_library(angle_renderer_opengl INTERFACE)
- target_sources(angle_renderer_opengl INTERFACE ${LIBANGLE_GL_SOURCES})
- target_compile_definitions(angle_renderer_opengl INTERFACE -DANGLE_ENABLE_OPENGL)
- add_library(angle::renderer::opengl ALIAS angle_renderer_opengl)
-endif()
-
-# D3D Renderers
-if(WINDOWS_ANY)
- ## All D3D Sources
- file(GLOB_RECURSE LIBANGLE_D3D_SOURCES
- "src/libANGLE/renderer/d3d/*.cpp"
- "src/libANGLE/renderer/d3d/*.inl"
- "src/libANGLE/renderer/d3d/*.h"
- )
- list(FILTER LIBANGLE_D3D_SOURCES EXCLUDE REGEX "_unittest")
-
- ## WinRT D3D Renderer
- if(WINDOWS_STORE)
- set(LIBANGLE_D3D_WINRT_SOURCES ${LIBANGLE_D3D_SOURCES})
- list(FILTER LIBANGLE_D3D_WINRT_SOURCES INCLUDE REGEX "winrt")
- add_library(angle_renderer_winrt INTERFACE)
- target_sources(angle_renderer_winrt INTERFACE ${LIBANGLE_D3D_WINRT_SOURCES})
- add_library(angle::renderer::winrt ALIAS angle_renderer_winrt)
- endif()
-
- ## Win32/d3d9 D3D Renderer
- if(WINDOWS_DESKTOP)
- set(LIBANGLE_D3D_DESKTOP_SOURCES ${LIBANGLE_D3D_SOURCES})
- list(FILTER LIBANGLE_D3D_DESKTOP_SOURCES INCLUDE REGEX "d3d9|win32")
- find_library(D3D9_LIB NAMES d3d9)
- add_library(angle_renderer_win32 INTERFACE)
- target_sources(angle_renderer_win32 INTERFACE ${LIBANGLE_D3D_DESKTOP_SOURCES})
- target_compile_definitions(angle_renderer_win32 INTERFACE -DANGLE_ENABLE_D3D9)
- target_link_libraries(angle_renderer_win32 INTERFACE ${D3D9_LIB})
- add_library(angle::renderer::win32 ALIAS angle_renderer_win32)
- endif()
-
- ## D3D11 Base renderer
- list(FILTER LIBANGLE_D3D_SOURCES EXCLUDE REGEX "winrt|d3d9|win32")
- find_library(DXGUID_LIB NAMES dxguid)
- find_library(D3D11_LIB NAMES d3d11)
- add_library(angle_renderer_d3d INTERFACE)
- target_sources(angle_renderer_d3d INTERFACE ${LIBANGLE_D3D_SOURCES})
- target_compile_definitions(angle_renderer_d3d INTERFACE
- -DANGLE_ENABLE_D3D11
- "-DANGLE_PRELOADED_D3DCOMPILER_MODULE_NAMES={ \"d3dcompiler_47.dll\", \"d3dcompiler_46.dll\", \"d3dcompiler_43.dll\" }"
- )
- target_link_libraries(angle_renderer_d3d INTERFACE ${D3D11_LIB} ${DXGUID_LIB})
- add_library(angle::renderer::d3d ALIAS angle_renderer_d3d)
-endif()
-
-## Core libANGLE library
-if (LINUX OR APPLE)
- set(LIBANGLE_SOURCES_PLATFORM
-
- "src/libANGLE/renderer/gl/*.cpp"
- "src/libANGLE/renderer/gl/*.inl"
- "src/libANGLE/renderer/gl/*.h"
-
- "src/libANGLE/renderer/gl/glx/*.cpp"
- "src/libANGLE/renderer/gl/glx/*.inl"
- "src/libANGLE/renderer/gl/glx/*.h"
-
- )
-elseif(WINDOWS_ANY)
- set(LIBANGLE_SOURCES_PLATFORM
- "src/third_party/systeminfo/SystemInfo.cpp"
- )
-else()
- set(LIBANGLE_SOURCES_PLATFORM )
-endif()
-
-file(GLOB LIBANGLE_SOURCES
- "src/common/third_party/murmurhash/MurmurHash3.cpp"
- "src/common/event_tracer.cpp"
-
- "src/libANGLE/*.cpp"
- "src/libANGLE/*.inl"
- "src/libANGLE/*.h"
-
- "src/libANGLE/renderer/*.cpp"
- "src/libANGLE/renderer/*.inl"
- "src/libANGLE/renderer/*.h"
-
- "src/libANGLE/renderer/null/*.cpp"
- "src/libANGLE/renderer/null/*.inl"
- "src/libANGLE/renderer/null/*.h"
-
- ${LIBANGLE_SOURCES_PLATFORM}
-)
-list(FILTER LIBANGLE_SOURCES EXCLUDE REGEX "_unittest")
-
-if(LINUX OR APPLE)
- set(LIBANGLE_RENDERER_PLATFORM
- angle::renderer::opengl
- )
-elseif(WINDOWS_STORE)
- set(LIBANGLE_RENDERER_PLATFORM
- angle::renderer::d3d
- angle::renderer::winrt
- )
-elseif(WINDOWS_DESKTOP)
- set(LIBANGLE_RENDERER_PLATFORM
- angle::renderer::d3d
- angle::renderer::win32
- angle::renderer::opengl
- )
-else()
- set(LIBANGLE_RENDERER_PLATFORM )
-endif()
-
-add_library(libANGLE STATIC ${LIBANGLE_SOURCES})
-target_link_libraries(libANGLE PRIVATE
- angle::common
- angle::image_util
- angle::translator
- angle::preprocessor
- ${LIBANGLE_RENDERER_PLATFORM}
-)
-target_include_directories(libANGLE PRIVATE "src/third_party/khronos")
-target_compile_definitions(libANGLE
- PRIVATE -DANGLE_ENABLE_NULL
- PUBLIC
- -DLIBANGLE_IMPLEMENTATION
- $<$<BOOL:${LINUX}>:ANGLE_USE_X11>
-)
-add_library(angle::libANGLE ALIAS libANGLE)
-
-##########
-# libGLESv2
-file(GLOB LIBGLESV2_SOURCES "src/libGLESv2/*.h" "src/libGLESv2/*.cpp" "src/libGLESv2/libGLESv2.def")
-add_library(libGLESv2 ${LIBGLESV2_SOURCES})
-target_link_libraries(libGLESv2 PRIVATE angle::common angle::libANGLE)
-target_compile_definitions(libGLESv2
- PRIVATE -DLIBGLESV2_IMPLEMENTATION
- PUBLIC
- -DGL_GLEXT_PROTOTYPES
- -DGL_APICALL=
- -DEGLAPI=
-)
-target_include_directories(libGLESv2 PUBLIC "$<INSTALL_INTERFACE:include>")
-
-##########
-# libEGL
-add_library(libEGL
- "src/libEGL/libEGL.def"
- "src/libEGL/libEGL.cpp"
- "src/libEGL/libEGL.rc"
- "src/libEGL/resource.h"
-)
-target_link_libraries(libEGL PRIVATE angle::common angle::libANGLE libGLESv2)
-target_include_directories(libEGL PUBLIC "$<INSTALL_INTERFACE:include>")
-
-
-SET_TARGET_PROPERTIES(libANGLE PROPERTIES PREFIX "")
-SET_TARGET_PROPERTIES(libGLESv2 PROPERTIES PREFIX "")
-SET_TARGET_PROPERTIES(libEGL PROPERTIES PREFIX "")
-
-install(TARGETS libEGL libGLESv2 EXPORT ANGLEExport
- RUNTIME DESTINATION bin
- LIBRARY DESTINATION lib
- ARCHIVE DESTINATION lib
-)
-
-install(EXPORT ANGLEExport FILE unofficial-angle-config.cmake NAMESPACE unofficial::angle:: DESTINATION share/unofficial-angle)
-
-if(NOT DISABLE_INSTALL_HEADERS)
- install(
- DIRECTORY include/
- DESTINATION include
- FILES_MATCHING PATTERN "*.h"
- PATTERN "GLSLANG" EXCLUDE
- PATTERN "export.h" EXCLUDE
- )
-endif()
+cmake_minimum_required(VERSION 3.8)
+project(angle CXX)
+
+if(WIN32 AND NOT WINDOWS_STORE)
+ set(WINDOWS_DESKTOP 1)
+else()
+ set(WINDOWS_DESKTOP 0)
+endif()
+if (WINDOWS_DESKTOP OR WINDOWS_STORE)
+ set(WINDOWS_ANY 1)
+else()
+ set(WINDOWS_ANY 0)
+endif()
+
+if(UNIX AND NOT APPLE)
+ set(LINUX 1)
+else()
+ set(LINUX 0)
+endif()
+
+if(WINDOWS_ANY)
+ add_compile_options(/d2guard4 /Wv:18 /guard:cf)
+else()
+ add_compile_options(-std=c++17 -fPIC)
+endif()
+
+if (APPLE)
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -framework Cocoa -framework OpenGL -framework IOKit -framework CoreFoundation -framework IOSurface -framework QuartzCore -framework CoreGraphics")
+endif()
+set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS}")
+set(CMAKE_STATIC_LIBRARY_PREFIX "")
+
+add_definitions(
+ -D_CRT_SECURE_NO_DEPRECATE
+ -D_SCL_SECURE_NO_WARNINGS
+ -D_HAS_EXCEPTIONS=0
+ -DNOMINMAX
+ -DANGLE_STANDALONE_BUILD
+ -DANGLE_ENABLE_DEBUG_ANNOTATIONS
+)
+
+configure_file(commit.h include/id/commit.h COPYONLY)
+include_directories(include src ${CMAKE_CURRENT_BINARY_DIR}/include)
+
+##########
+# angle::common
+if(WINDOWS_ANY)
+ set(ANGLE_COMMON_PLATFORM_FILTER "_linux|_mac")
+elseif(LINUX)
+ set(ANGLE_COMMON_PLATFORM_FILTER "_win|_mac")
+elseif(APPLE)
+ set(ANGLE_COMMON_PLATFORM_FILTER "_linux|_win")
+endif()
+file(GLOB ANGLE_COMMON_SOURCES "src/common/*.h" "src/common/*.inl" "src/common/*.cpp" "src/common/third_party/base/*.h")
+list(FILTER ANGLE_COMMON_SOURCES EXCLUDE REGEX "_unittest|event_tracer|${ANGLE_COMMON_PLATFORM_FILTER}")
+add_library(angle_common STATIC ${ANGLE_COMMON_SOURCES})
+target_include_directories(angle_common PUBLIC src/common/third_party/base)
+add_library(angle::common ALIAS angle_common)
+
+##########
+# angle::image_util
+file(GLOB ANGLE_IMAGE_UTIL_SOURCES "src/image_util/*.h" "src/image_util/*.inl" "src/image_util/*.cpp")
+add_library(angle_image_util STATIC ${ANGLE_IMAGE_UTIL_SOURCES})
+target_link_libraries(angle_image_util PRIVATE angle::common)
+add_library(angle::image_util ALIAS angle_image_util)
+
+##########
+# angle::translator
+file(GLOB TRANSLATOR_SOURCES
+ "src/compiler/translator/glslang.l"
+ "src/compiler/translator/glslang.y"
+ "src/compiler/translator/*.h"
+ "src/compiler/translator/*.cpp"
+ "src/third_party/compiler/ArrayBoundsClamper.cpp"
+)
+add_library(angle_translator STATIC ${TRANSLATOR_SOURCES})
+target_compile_definitions(angle_translator PUBLIC
+ -DANGLE_ENABLE_ESSL
+ -DANGLE_ENABLE_GLSL
+ -DANGLE_ENABLE_HLSL
+)
+target_link_libraries(angle_translator PRIVATE angle::common)
+add_library(angle::translator ALIAS angle_translator)
+
+##########
+# angle::preprocessor
+file(GLOB PREPROCESSOR_SOURCES
+ "src/compiler/preprocessor/*.h"
+ "src/compiler/preprocessor/*.cpp"
+)
+add_library(angle_preprocessor STATIC ${PREPROCESSOR_SOURCES})
+target_link_libraries(angle_preprocessor PRIVATE angle::common)
+add_library(angle::preprocessor ALIAS angle_preprocessor)
+
+##########
+# libANGLE
+
+## OpenGL Renderer
+if(WINDOWS_DESKTOP OR LINUX OR APPLE)
+ if(WINDOWS_DESKTOP)
+ set(ANGLE_RENDERER_OPENGL_PLATFORM
+ "src/libANGLE/renderer/gl/wgl/*.cpp"
+ "src/libANGLE/renderer/gl/wgl/*.inl"
+ "src/libANGLE/renderer/gl/wgl/*.h"
+ )
+ elseif(APPLE)
+ set(ANGLE_RENDERER_OPENGL_PLATFORM
+ "src/libANGLE/renderer/gl/cgl/*.mm"
+ "src/libANGLE/renderer/gl/cgl/*.cpp"
+ "src/libANGLE/renderer/gl/cgl/*.inl"
+ "src/libANGLE/renderer/gl/cgl/*.h"
+ "gpu_info_util/SystemInfo_mac.mm"
+ )
+ elseif(LINUX)
+ set(ANGLE_RENDERER_OPENGL_PLATFORM
+ "src/libANGLE/renderer/gl/glx/*.cpp"
+ "src/libANGLE/renderer/gl/glx/*.inl"
+ "src/libANGLE/renderer/gl/glx/*.h"
+ )
+ endif()
+
+ file(GLOB LIBANGLE_GL_SOURCES
+ "src/libANGLE/renderer/gl/*.cpp"
+ "src/libANGLE/renderer/gl/*.inl"
+ "src/libANGLE/renderer/gl/*.h"
+
+ ${ANGLE_RENDERER_OPENGL_PLATFORM}
+ )
+ list(FILTER LIBANGLE_GL_SOURCES EXCLUDE REGEX "_unittest")
+ add_library(angle_renderer_opengl INTERFACE)
+ target_sources(angle_renderer_opengl INTERFACE ${LIBANGLE_GL_SOURCES})
+ target_compile_definitions(angle_renderer_opengl INTERFACE -DANGLE_ENABLE_OPENGL)
+ add_library(angle::renderer::opengl ALIAS angle_renderer_opengl)
+endif()
+
+# D3D Renderers
+if(WINDOWS_ANY)
+ ## All D3D Sources
+ file(GLOB_RECURSE LIBANGLE_D3D_SOURCES
+ "src/libANGLE/renderer/d3d/*.cpp"
+ "src/libANGLE/renderer/d3d/*.inl"
+ "src/libANGLE/renderer/d3d/*.h"
+ )
+ list(FILTER LIBANGLE_D3D_SOURCES EXCLUDE REGEX "_unittest")
+
+ ## WinRT D3D Renderer
+ if(WINDOWS_STORE)
+ set(LIBANGLE_D3D_WINRT_SOURCES ${LIBANGLE_D3D_SOURCES})
+ list(FILTER LIBANGLE_D3D_WINRT_SOURCES INCLUDE REGEX "winrt")
+ add_library(angle_renderer_winrt INTERFACE)
+ target_sources(angle_renderer_winrt INTERFACE ${LIBANGLE_D3D_WINRT_SOURCES})
+ add_library(angle::renderer::winrt ALIAS angle_renderer_winrt)
+ endif()
+
+ ## Win32/d3d9 D3D Renderer
+ if(WINDOWS_DESKTOP)
+ set(LIBANGLE_D3D_DESKTOP_SOURCES ${LIBANGLE_D3D_SOURCES})
+ list(FILTER LIBANGLE_D3D_DESKTOP_SOURCES INCLUDE REGEX "d3d9|win32")
+ find_library(D3D9_LIB NAMES d3d9)
+ add_library(angle_renderer_win32 INTERFACE)
+ target_sources(angle_renderer_win32 INTERFACE ${LIBANGLE_D3D_DESKTOP_SOURCES})
+ target_compile_definitions(angle_renderer_win32 INTERFACE -DANGLE_ENABLE_D3D9)
+ target_link_libraries(angle_renderer_win32 INTERFACE ${D3D9_LIB})
+ add_library(angle::renderer::win32 ALIAS angle_renderer_win32)
+ endif()
+
+ ## D3D11 Base renderer
+ list(FILTER LIBANGLE_D3D_SOURCES EXCLUDE REGEX "winrt|d3d9|win32")
+ find_library(DXGUID_LIB NAMES dxguid)
+ find_library(D3D11_LIB NAMES d3d11)
+ add_library(angle_renderer_d3d INTERFACE)
+ target_sources(angle_renderer_d3d INTERFACE ${LIBANGLE_D3D_SOURCES})
+ target_compile_definitions(angle_renderer_d3d INTERFACE
+ -DANGLE_ENABLE_D3D11
+ "-DANGLE_PRELOADED_D3DCOMPILER_MODULE_NAMES={ \"d3dcompiler_47.dll\", \"d3dcompiler_46.dll\", \"d3dcompiler_43.dll\" }"
+ )
+ target_link_libraries(angle_renderer_d3d INTERFACE ${D3D11_LIB} ${DXGUID_LIB})
+ add_library(angle::renderer::d3d ALIAS angle_renderer_d3d)
+endif()
+
+## Core libANGLE library
+if(WINDOWS_ANY)
+ set(LIBANGLE_SOURCES_PLATFORM
+ "src/third_party/systeminfo/SystemInfo.cpp"
+ )
+else()
+ set(LIBANGLE_SOURCES_PLATFORM )
+endif()
+
+file(GLOB LIBANGLE_SOURCES
+ "src/common/third_party/murmurhash/MurmurHash3.cpp"
+ "src/common/event_tracer.cpp"
+
+ "src/libANGLE/*.cpp"
+ "src/libANGLE/*.inl"
+ "src/libANGLE/*.h"
+
+ "src/libANGLE/renderer/*.cpp"
+ "src/libANGLE/renderer/*.inl"
+ "src/libANGLE/renderer/*.h"
+
+ "src/libANGLE/renderer/null/*.cpp"
+ "src/libANGLE/renderer/null/*.inl"
+ "src/libANGLE/renderer/null/*.h"
+
+ ${LIBANGLE_SOURCES_PLATFORM}
+)
+list(FILTER LIBANGLE_SOURCES EXCLUDE REGEX "_unittest")
+
+if(LINUX OR APPLE)
+ set(LIBANGLE_RENDERER_PLATFORM
+ angle::renderer::opengl
+ )
+elseif(WINDOWS_STORE)
+ set(LIBANGLE_RENDERER_PLATFORM
+ angle::renderer::d3d
+ angle::renderer::winrt
+ )
+elseif(WINDOWS_DESKTOP)
+ set(LIBANGLE_RENDERER_PLATFORM
+ angle::renderer::d3d
+ angle::renderer::win32
+ angle::renderer::opengl
+ )
+else()
+ set(LIBANGLE_RENDERER_PLATFORM )
+endif()
+
+add_library(libANGLE STATIC ${LIBANGLE_SOURCES})
+target_link_libraries(libANGLE PRIVATE
+ angle::common
+ angle::image_util
+ angle::translator
+ angle::preprocessor
+ ${LIBANGLE_RENDERER_PLATFORM}
+)
+target_include_directories(libANGLE PRIVATE "src/third_party/khronos")
+target_compile_definitions(libANGLE
+ PRIVATE -DANGLE_ENABLE_NULL
+ PUBLIC
+ -DLIBANGLE_IMPLEMENTATION
+ $<$<BOOL:${LINUX}>:ANGLE_USE_X11>
+)
+add_library(angle::libANGLE ALIAS libANGLE)
+
+##########
+# libGLESv2
+file(GLOB LIBGLESV2_SOURCES "src/libGLESv2/*.h" "src/libGLESv2/*.cpp" "src/libGLESv2/libGLESv2.def")
+add_library(libGLESv2 ${LIBGLESV2_SOURCES})
+target_link_libraries(libGLESv2 PRIVATE angle::common angle::libANGLE)
+target_compile_definitions(libGLESv2
+ PRIVATE -DLIBGLESV2_IMPLEMENTATION
+ PUBLIC
+ -DGL_GLEXT_PROTOTYPES
+ -DGL_APICALL=
+ -DEGLAPI=
+)
+target_include_directories(libGLESv2 PUBLIC "$<INSTALL_INTERFACE:include>")
+
+##########
+# libEGL
+add_library(libEGL
+ "src/libEGL/libEGL.def"
+ "src/libEGL/libEGL.cpp"
+ "src/libEGL/libEGL.rc"
+ "src/libEGL/resource.h"
+)
+target_link_libraries(libEGL PRIVATE angle::common angle::libANGLE libGLESv2)
+target_include_directories(libEGL PUBLIC "$<INSTALL_INTERFACE:include>")
+
+
+SET_TARGET_PROPERTIES(libANGLE PROPERTIES PREFIX "")
+SET_TARGET_PROPERTIES(libGLESv2 PROPERTIES PREFIX "")
+SET_TARGET_PROPERTIES(libEGL PROPERTIES PREFIX "")
+
+install(TARGETS libEGL libGLESv2 EXPORT ANGLEExport
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+install(EXPORT ANGLEExport FILE unofficial-angle-config.cmake NAMESPACE unofficial::angle:: DESTINATION share/unofficial-angle)
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(
+ DIRECTORY include/
+ DESTINATION include
+ FILES_MATCHING PATTERN "*.h"
+ PATTERN "GLSLANG" EXCLUDE
+ PATTERN "export.h" EXCLUDE
+ )
+endif()