From 41dbdbc8166d4720c190beb74b75d8e417d8ac39 Mon Sep 17 00:00:00 2001 From: Andrew Kaster Date: Fri, 20 Dec 2024 11:26:35 -0700 Subject: [PATCH] CMake: Add metal feature to angle port --- .../overlay-ports/angle/cmake-buildsystem/CMakeLists.txt | 2 +- .../angle/cmake-buildsystem/PlatformMac.cmake | 2 +- Meta/CMake/vcpkg/overlay-ports/angle/portfile.cmake | 6 ++++++ Meta/CMake/vcpkg/overlay-ports/angle/vcpkg.json | 8 +++++++- 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/Meta/CMake/vcpkg/overlay-ports/angle/cmake-buildsystem/CMakeLists.txt b/Meta/CMake/vcpkg/overlay-ports/angle/cmake-buildsystem/CMakeLists.txt index bdffad91c38..e3129c6eb6f 100644 --- a/Meta/CMake/vcpkg/overlay-ports/angle/cmake-buildsystem/CMakeLists.txt +++ b/Meta/CMake/vcpkg/overlay-ports/angle/cmake-buildsystem/CMakeLists.txt @@ -7,7 +7,7 @@ include(WebKitCommon-minimal) set(ANGLE_FRAMEWORK_HEADERS_DIR "${CMAKE_BINARY_DIR}/ANGLE/headers") set(USE_ANGLE_EGL ON) -if (NOT WINDOWS_STORE) +if (NOT WINDOWS_STORE AND NOT USE_METAL) set(USE_OPENGL ON) endif() diff --git a/Meta/CMake/vcpkg/overlay-ports/angle/cmake-buildsystem/PlatformMac.cmake b/Meta/CMake/vcpkg/overlay-ports/angle/cmake-buildsystem/PlatformMac.cmake index 6ba6ee72f70..2691ce61bf1 100644 --- a/Meta/CMake/vcpkg/overlay-ports/angle/cmake-buildsystem/PlatformMac.cmake +++ b/Meta/CMake/vcpkg/overlay-ports/angle/cmake-buildsystem/PlatformMac.cmake @@ -43,7 +43,7 @@ if(USE_OPENGL) list(APPEND ANGLE_DEFINITIONS ANGLE_ENABLE_GLSL ANGLE_ENABLE_GL_DESKTOP_BACKEND ANGLE_ENABLE_APPLE_WORKAROUNDS) endif() -if(USE_ANGLE_EGL OR ENABLE_WEBGL) +if(USE_OPENGL OR ENABLE_WEBGL) list(APPEND ANGLE_SOURCES ${gl_backend_sources} diff --git a/Meta/CMake/vcpkg/overlay-ports/angle/portfile.cmake b/Meta/CMake/vcpkg/overlay-ports/angle/portfile.cmake index aed9e4b4564..5e5a54d04c7 100644 --- a/Meta/CMake/vcpkg/overlay-ports/angle/portfile.cmake +++ b/Meta/CMake/vcpkg/overlay-ports/angle/portfile.cmake @@ -30,6 +30,11 @@ else() set(ANGLE_BUILDSYSTEM_PORT "Linux") endif() +set(USE_METAL OFF) +if ("metal" IN_LIST FEATURES) + set(USE_METAL ON) +endif() + # chromium/7067 set(ANGLE_COMMIT 48103cb2f2b292cb50cc5a29546b358b2e47fd29) set(ANGLE_VERSION 7085) @@ -169,6 +174,7 @@ vcpkg_cmake_configure( "-DPORT=${ANGLE_BUILDSYSTEM_PORT}" "-DANGLE_USE_D3D11_COMPOSITOR_NATIVE_WINDOW=${ANGLE_USE_D3D11_COMPOSITOR_NATIVE_WINDOW}" "-DVCPKG_TARGET_IS_WINDOWS=${VCPKG_TARGET_IS_WINDOWS}" + "-DUSE_METAL=${USE_METAL}" ) vcpkg_cmake_install() diff --git a/Meta/CMake/vcpkg/overlay-ports/angle/vcpkg.json b/Meta/CMake/vcpkg/overlay-ports/angle/vcpkg.json index 88b558589b0..1a98457e066 100644 --- a/Meta/CMake/vcpkg/overlay-ports/angle/vcpkg.json +++ b/Meta/CMake/vcpkg/overlay-ports/angle/vcpkg.json @@ -36,5 +36,11 @@ "host": true }, "zlib" - ] + ], + "features": { + "metal": { + "description": "Metal support for angle", + "supports": "ios, osx" + } + } }