Skip to content

Unify ANGLE dependency into Skia DEPS file#3701

Draft
mattleibow wants to merge 1 commit into
mainfrom
mattleibow/dev-unify-angle-deps-into-skia-deps
Draft

Unify ANGLE dependency into Skia DEPS file#3701
mattleibow wants to merge 1 commit into
mainfrom
mattleibow/dev-unify-angle-deps-into-skia-deps

Conversation

@mattleibow

Copy link
Copy Markdown
Collaborator

Move ANGLE from a standalone git clone in winui-angle/build.cake into the Skia DEPS file using the deps_os["win"] conditional section. This means git-sync-deps handles ANGLE checkout alongside all other dependencies, but only on Windows where it's needed for WinUI builds.

Companion PR: mono/skia#183 — adds the deps_os["win"] entry to DEPS

What changed

File Change
externals/skia Points to skia commit with deps_os["win"] ANGLE entry
scripts/cake/native-shared.cake Passes OS arg to git-sync-deps; adds SyncAngle() for submodule init + setup
native/winui-angle/build.cake Removes clone/setup logic from sync-ANGLE; updates ANGLE_PATH to new location; keeps WinAppSDK setup + build tasks
scripts/cake/externals.cake Updates clean path to new ANGLE location
scripts/VERSIONS.txt Notes that DEPS is the source of truth for ANGLE pin

How it works

  1. git-sync-deps in the DEPS file now has a deps_os section:
    deps_os = {
        "win": {
            "third_party/externals/angle2": "https://github.com/google/angle.git@ea1cea...",
        },
    }
  2. The cake git-sync-deps task passes "win" / "mac" / "unix" as a CLI arg so platform-conditional deps are synced
  3. After sync, SyncAngle() inits only the 7 required submodules and runs post-checkout setup (patches, gclient_args, LASTCHANGE, rc.exe, LLVM)
  4. sync-ANGLE in the ANGLE build file now only handles WinAppSDK generation — all other setup moved to shared sync

Benefits

  • Single DEPS file is the source of truth for all native dependencies including ANGLE
  • Single sync task (git-sync-deps) handles everything
  • Zero cost on non-Windows CIdeps_os["win"] entries are only fetched when OS arg is "win"
  • ANGLE version pin is visible alongside all other dependency pins

@github-actions

github-actions Bot commented Apr 20, 2026

Copy link
Copy Markdown
Contributor

📦 Try the packages from this PR

Warning

Do not run these scripts without first reviewing the code in this PR.

Step 1 — Download the packages

bash / macOS / Linux:

curl -fsSL https://raw.githubusercontent.com/mono/SkiaSharp/main/scripts/get-skiasharp-pr.sh | bash -s -- 3701

PowerShell / Windows:

iex "& { $(irm https://raw.githubusercontent.com/mono/SkiaSharp/main/scripts/get-skiasharp-pr.ps1) } 3701"

Step 2 — Add the local NuGet source

dotnet nuget add source ~/.skiasharp/hives/pr-3701/packages --name skiasharp-pr-3701
More options
Option Description
--successful-only / -SuccessfulOnly Only use successful builds
--force / -Force Overwrite previously downloaded packages
--list / -List List available artifacts without downloading
--build-id ID / -BuildId ID Download from a specific build

Or download manually from Azure Pipelines — look for the nuget artifact on the build for this PR.

Remove the source when you're done:

dotnet nuget remove source skiasharp-pr-3701

Move ANGLE from a standalone clone in winui-angle/build.cake into
the Skia DEPS file using the deps_os["win"] conditional section,
so git-sync-deps handles ANGLE checkout alongside all other
dependencies. ANGLE is only synced on Windows where it is needed.

Changes:
- externals/skia: Add deps_os["win"] with ANGLE pinned to chromium/6275
- native-shared.cake: Pass OS arg to git-sync-deps, add SyncAngle()
  helper for submodule init + post-checkout setup
- winui-angle/build.cake: Remove sync-ANGLE clone/setup logic, update
  ANGLE_PATH to new location under skia third_party, keep WinAppSDK
  setup and build tasks
- externals.cake: Update clean path to new ANGLE location
- VERSIONS.txt: Add comment noting DEPS is source of truth

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@mattleibow mattleibow force-pushed the mattleibow/dev-unify-angle-deps-into-skia-deps branch from c8e0754 to bb96f00 Compare April 20, 2026 19:53
@mattleibow mattleibow marked this pull request as draft April 23, 2026 18:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

1 participant