update_angle_apple module

Build ANGLE OpenGL ES libraries for Apple platforms via vcpkg.

The Apple analog of tools/update_angle_windows.ps1. Builds ANGLE (with the Metal backend) via vcpkg for the Apple triplets, assembles the per-platform/arch dylibs into xcframeworks (libEGL.xcframework and libGLESv2.xcframework) plus a shared header tree, and stages everything to build/angle-artifacts/ for pickup by make angle-apple-gather.

Invoked remotely via make angle-apple-build; do not run directly (it clones and bootstraps a throwaway vcpkg and shells out to xcodebuild/lipo, so it expects a full Xcode + command-line-tools host such as fromini).

iOS note: vcpkg’s angle port only selects the Metal (“Mac”) buildsystem for VCPKG_TARGET_IS_OSX; iOS triplets fall through to the desktop-GL (“Linux”) config and do not build a usable Metal library. So only the macOS triplets are built by default. The xcframework assembly here is written to accept additional slice groups (ios/ios-sim) the moment a working iOS build exists (a patched port or a native gn build) – pass --include-ios to attempt them once that lands.

class update_angle_apple.BuildTriplet(name: str, group: str, arch: str, cmake_system: str, osx_arch: str, sysroot: str | None)[source]

Bases: object

A vcpkg triplet we build and how it slots into the xcframeworks.

group is the xcframework slice it contributes to; all triplets in a group are lipo-merged into one fat dylib for that slice.

arch: str
cmake_system: str
group: str
name: str
osx_arch: str
sysroot: str | None
update_angle_apple.build(triplets: list[BuildTriplet], repo_root: Path) None[source]

Build all triplets and assemble the staged xcframeworks.

update_angle_apple.main() None[source]

Entry point.