From 239cd62103d617f0b2a9d58527843417a0db6ab4 Mon Sep 17 00:00:00 2001 From: Weicao-CatilGrass <1992414357@qq.com> Date: Mon, 9 Mar 2026 14:48:15 +0800 Subject: Add Win32 GUI for butck_gui.exe --- gui/win32/scripts/build.ps1 | 87 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 gui/win32/scripts/build.ps1 (limited to 'gui/win32/scripts/build.ps1') diff --git a/gui/win32/scripts/build.ps1 b/gui/win32/scripts/build.ps1 new file mode 100644 index 0000000..a5c01e5 --- /dev/null +++ b/gui/win32/scripts/build.ps1 @@ -0,0 +1,87 @@ +$originalLocation = Get-Location +$scriptPath = Split-Path -Parent $MyInvocation.MyCommand.Path +Set-Location $scriptPath + +. $scriptPath\_entry.ps1 + +$generator = "" +$arch = "x64" + +$vsPaths = @( + "C:\Program Files\Microsoft Visual Studio\2022\Community", + "C:\Program Files\Microsoft Visual Studio\2022\Professional", + "C:\Program Files\Microsoft Visual Studio\2022\Enterprise", + "C:\Program Files\Microsoft Visual Studio\2022\BuildTools", + "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community", + "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional", + "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise", + "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools", + "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community", + "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional", + "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise", + "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools" +) + +foreach ($path in $vsPaths) { + if (Test-Path $path) { + if ($path -match "2022") { + $generator = "Visual Studio 17 2022" + } elseif ($path -match "2019") { + $generator = "Visual Studio 16 2019" + } elseif ($path -match "2017") { + $generator = "Visual Studio 15 2017" + } + break + } +} + +if ([string]::IsNullOrEmpty($generator)) { + if (Get-Command ninja -ErrorAction SilentlyContinue) { + $generator = "Ninja" + } + elseif (Get-Command nmake -ErrorAction SilentlyContinue) { + $generator = "NMake Makefiles" + } + elseif (Get-Command mingw32-make -ErrorAction SilentlyContinue) { + $generator = "MinGW Makefiles" + } + else { + Write-Host "No suitable generator found. Please install Visual Studio or another build system." -ForegroundColor Red + exit 1 + } +} + +if (!(Test-Path -Path "..\build")) { + New-Item -ItemType Directory -Path "..\build" | Out-Null +} +Set-Location "..\build" + +if ($generator -match "Visual Studio") { + if ($generator -match "Visual Studio 15 2017") { + cmake .. -G "$generator" -A $arch + } else { + cmake .. -G "$generator" -A $arch + } +} else { + cmake .. -G "$generator" +} + +if ($LASTEXITCODE -ne 0) { + Write-Host "CMake configuration failed!" -ForegroundColor Red + Set-Location $originalLocation + exit 1 +} + +if ($generator -match "Visual Studio") { + cmake --build . --config Release +} else { + cmake --build . +} + +if ($LASTEXITCODE -ne 0) { + Write-Host "Build failed!" -ForegroundColor Red + Set-Location $originalLocation + exit 1 +} + +Set-Location $originalLocation -- cgit