From ddb312a3cd1a24fb4d719ad02d6a97cb0eb16725 Mon Sep 17 00:00:00 2001 From: geruipu Date: Sat, 20 Jun 2026 23:46:58 +0800 Subject: [PATCH] Make ANGLE BUILD patch deterministic --- .../patches/angle-chromium-7151.patch | 20 ---------- scripts/build-windows-static-graphics.ps1 | 38 +++++++++++++------ 2 files changed, 26 insertions(+), 32 deletions(-) diff --git a/External/NativeStatic/patches/angle-chromium-7151.patch b/External/NativeStatic/patches/angle-chromium-7151.patch index 17e50f5..b99971c 100644 --- a/External/NativeStatic/patches/angle-chromium-7151.patch +++ b/External/NativeStatic/patches/angle-chromium-7151.patch @@ -1,23 +1,3 @@ -diff --git a/BUILD.gn b/BUILD.gn -index 07e1268a57..25f7cba544 100644 ---- a/BUILD.gn -+++ b/BUILD.gn -@@ -1576,4 +1576,15 @@ angle_static_library("libGLESv2_static") { -+angle_static_library("libANGLE_static") { -+ complete_static_lib = true -+ public_deps = [ ":libANGLE" ] -+} -+ -+angle_static_library("libANGLE_with_capture_static") { -+ complete_static_lib = true -+ public_deps = [ ":libANGLE_with_capture" ] -+} -+ - angle_static_library("libGLESv2_static") { -+ complete_static_lib = true - sources = libglesv2_sources - if (angle_enable_cl) { - sources += libglesv2_cl_sources diff --git a/DEPS b/DEPS index 9085ba513e..565840a832 100644 --- a/DEPS diff --git a/scripts/build-windows-static-graphics.ps1 b/scripts/build-windows-static-graphics.ps1 index 494e7e1..07cb427 100644 --- a/scripts/build-windows-static-graphics.ps1 +++ b/scripts/build-windows-static-graphics.ps1 @@ -183,8 +183,30 @@ function Sync-Angle { } function Apply-AnglePatches($Src) { + $buildFile = Join-Path $Src "BUILD.gn" + $buildText = Get-Content -Path $buildFile -Raw + if (-not $buildText.Contains('angle_static_library("libANGLE_static")')) { + $libAngleTargets = @' +angle_static_library("libANGLE_static") { + complete_static_lib = true + public_deps = [ ":libANGLE" ] +} + +angle_static_library("libANGLE_with_capture_static") { + complete_static_lib = true + public_deps = [ ":libANGLE_with_capture" ] +} + +angle_static_library("libGLESv2_static") { +'@ + $buildText = [regex]::Replace($buildText, '(?m)^angle_static_library\("libGLESv2_static"\) \{', $libAngleTargets) + $buildText = [regex]::Replace($buildText, '(?m)^angle_static_library\("libGLESv2_static"\) \{\r?\n sources = libglesv2_sources', "angle_static_library(`"libGLESv2_static`") {`n complete_static_lib = true`n sources = libglesv2_sources") + Set-Content -Path $buildFile -Value $buildText -NoNewline -Encoding UTF8 + } + $patch = Join-Path $AnglePatchDir "angle-chromium-$AngleBranch.patch" - if ((Test-Path $patch) -and -not (Select-String -Path (Join-Path $Src "BUILD.gn") -Pattern 'angle_static_library\("libANGLE_static"\)' -Quiet)) { + $depsFile = Join-Path $Src "DEPS" + if ((Test-Path $patch) -and (Select-String -Path $depsFile -Pattern "'third_party/catapult'" -Quiet)) { $null = git -C $Src apply $patch if ($LASTEXITCODE -ne 0) { throw "Failed to apply ANGLE patch: $patch" @@ -206,17 +228,9 @@ function Test-AnglePatch { Assert-AngleVisualStudioVersion $src = Sync-Angle - $patch = Join-Path $AnglePatchDir "angle-chromium-$AngleBranch.patch" - if (-not (Test-Path $patch)) { - return - } - if (Select-String -Path (Join-Path $src "BUILD.gn") -Pattern 'angle_static_library\("libANGLE_static"\)' -Quiet) { - return - } - - $null = git -C $src apply --check $patch - if ($LASTEXITCODE -ne 0) { - throw "ANGLE patch does not apply: $patch" + Apply-AnglePatches $src + if (-not (Select-String -Path (Join-Path $src "BUILD.gn") -Pattern 'angle_static_library\("libANGLE_static"\)' -Quiet)) { + throw "ANGLE BUILD.gn preflight failed." } Write-Host "ANGLE preflight passed." }