param( [string]$SdkPath = "" ) $ErrorActionPreference = "Stop" $scriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path $repoRoot = Split-Path -Parent $scriptDir if ([string]::IsNullOrWhiteSpace($SdkPath)) { $SdkPath = Join-Path $repoRoot "ThirdParty\Ultralight-SDK" } $frameworkBuild = Join-Path $repoRoot "ThirdParty\framework-F4-Conversion\build" $linkPath = Join-Path $frameworkBuild "ultralight-1.4.0" if (-not (Test-Path $SdkPath)) { Write-Error "Ultralight SDK not found at: $SdkPath" } foreach ($required in @("include", "lib", "bin", "resources")) { $candidate = Join-Path $SdkPath $required if (-not (Test-Path $candidate)) { Write-Error "Ultralight SDK is missing required folder: $candidate" } } New-Item -ItemType Directory -Path $frameworkBuild -Force | Out-Null if (Test-Path $linkPath) { $item = Get-Item $linkPath -Force if ($item.Attributes -band [IO.FileAttributes]::ReparsePoint) { Write-Host "Removing existing junction: $linkPath" cmd /c rmdir "$linkPath" | Out-Null } else { Write-Error "Expected a junction at $linkPath but found a normal directory. Remove it manually and rerun." } } Write-Host "Linking $linkPath -> $SdkPath" cmd /c mklink /J "$linkPath" "$SdkPath" | Out-Null Write-Host "Ultralight SDK link ready."