From 8ef7df2a9565f92d55c70385e93f902dafd71b33 Mon Sep 17 00:00:00 2001 From: ayeteadoe Date: Fri, 27 Jun 2025 22:12:46 -0700 Subject: [PATCH] Meta: Patch angle vcpkg to build on Windows --- Libraries/LibWeb/CMakeLists.txt | 12 ++---------- .../angle/cmake-buildsystem/PlatformWin.cmake | 9 +++++---- Meta/CMake/vcpkg/overlay-ports/angle/portfile.cmake | 6 +++++- vcpkg.json | 2 +- 4 files changed, 13 insertions(+), 16 deletions(-) diff --git a/Libraries/LibWeb/CMakeLists.txt b/Libraries/LibWeb/CMakeLists.txt index 45486a8a733..e6d8784233e 100644 --- a/Libraries/LibWeb/CMakeLists.txt +++ b/Libraries/LibWeb/CMakeLists.txt @@ -2,9 +2,7 @@ include(libweb_generators) include(vulkan) include(skia) -if (APPLE OR LINUX) - find_package(unofficial-angle REQUIRED CONFIG) -endif() +find_package(unofficial-angle REQUIRED CONFIG) set(SOURCES Animations/Animatable.cpp @@ -1014,13 +1012,7 @@ set(GENERATED_SOURCES serenity_lib(LibWeb web) -target_link_libraries(LibWeb PRIVATE LibCore LibCompress LibCrypto LibJS LibHTTP LibGfx LibIPC LibRegex LibSyntax LibTextCodec LibUnicode LibMedia LibWasm LibXML LibIDL LibURL LibTLS LibRequests LibGC LibThreading skia) - -if (APPLE OR LINUX) - target_link_libraries(LibWeb PRIVATE unofficial::angle::libEGL unofficial::angle::libGLESv2) -else() - target_link_libraries(LibWeb PRIVATE GL) -endif() +target_link_libraries(LibWeb PRIVATE LibCore LibCompress LibCrypto LibJS LibHTTP LibGfx LibIPC LibRegex LibSyntax LibTextCodec LibUnicode LibMedia LibWasm LibXML LibIDL LibURL LibTLS LibRequests LibGC LibThreading skia unofficial::angle::libEGL unofficial::angle::libGLESv2) # FIXME: https://github.com/microsoft/vcpkg/issues/42324 target_include_directories(LibWeb PRIVATE ${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include) diff --git a/Meta/CMake/vcpkg/overlay-ports/angle/cmake-buildsystem/PlatformWin.cmake b/Meta/CMake/vcpkg/overlay-ports/angle/cmake-buildsystem/PlatformWin.cmake index cb059f1cfae..ca08a4f8c12 100644 --- a/Meta/CMake/vcpkg/overlay-ports/angle/cmake-buildsystem/PlatformWin.cmake +++ b/Meta/CMake/vcpkg/overlay-ports/angle/cmake-buildsystem/PlatformWin.cmake @@ -9,8 +9,8 @@ list(APPEND ANGLE_DEFINITIONS # We're targeting Windows 10 which will have DirectX 11 list(APPEND ANGLE_SOURCES - ${_d3d11_backend_sources} - ${_d3d_shared_sources} + ${d3d11_backend_sources} + ${d3d_shared_sources} ${angle_translator_hlsl_sources} @@ -25,11 +25,12 @@ list(APPEND ANGLE_DEFINITIONS "-DANGLE_PRELOADED_D3DCOMPILER_MODULE_NAMES={ \"d3dcompiler_47.dll\", \"d3dcompiler_46.dll\", \"d3dcompiler_43.dll\" }" ) -list(APPEND ANGLEGLESv2_LIBRARIES dxguid dxgi) +# https://issues.angleproject.org/issues/345274916 +list(APPEND ANGLEGLESv2_LIBRARIES dxguid dxgi synchronization) if(NOT angle_is_winuwp) # vcpkg EDIT: Exclude DirectX 9 on UWP # DirectX 9 support should be optional but ANGLE will not compile without it - list(APPEND ANGLE_SOURCES ${_d3d9_backend_sources}) + list(APPEND ANGLE_SOURCES ${d3d9_backend_sources}) list(APPEND ANGLE_DEFINITIONS ANGLE_ENABLE_D3D9) list(APPEND ANGLEGLESv2_LIBRARIES d3d9) endif() diff --git a/Meta/CMake/vcpkg/overlay-ports/angle/portfile.cmake b/Meta/CMake/vcpkg/overlay-ports/angle/portfile.cmake index d57039c6948..14d9f8ff498 100644 --- a/Meta/CMake/vcpkg/overlay-ports/angle/portfile.cmake +++ b/Meta/CMake/vcpkg/overlay-ports/angle/portfile.cmake @@ -156,7 +156,11 @@ function(checkout_in_path PATH URL REF) URL "${URL}" REF "${REF}" ) - file(RENAME "${DEP_SOURCE_PATH}" "${PATH}") + if (WIN32) + file(COPY "${DEP_SOURCE_PATH}/" DESTINATION "${PATH}") + else() + file(RENAME "${DEP_SOURCE_PATH}" "${PATH}") + endif() file(REMOVE_RECURSE "${DEP_SOURCE_PATH}") endfunction() diff --git a/vcpkg.json b/vcpkg.json index 04cb8382db1..73570334e52 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -10,7 +10,7 @@ }, { "name": "angle", - "platform": "linux" + "platform": "linux | windows" }, { "name": "curl",