From 77234228a21b70d1e225debf315af377757175b3 Mon Sep 17 00:00:00 2001 From: Vulcast Date: Tue, 30 Jun 2026 20:45:59 +0100 Subject: [PATCH] fix: write CMakeUserPresets.json to avoid cmd line length limit --- build-vulcast-vertical.ps1 | 43 ++++++++++++++++++++++++++++++-------- 1 file changed, 34 insertions(+), 9 deletions(-) diff --git a/build-vulcast-vertical.ps1 b/build-vulcast-vertical.ps1 index 1031afd..4ef62f6 100644 --- a/build-vulcast-vertical.ps1 +++ b/build-vulcast-vertical.ps1 @@ -1,14 +1,15 @@ #Requires -Version 5.1 <# .SYNOPSIS - Build Vulcast Vertical OBS plugin - v5 (uses cmake presets) + Build Vulcast Vertical OBS plugin - v6 (writes cmake cache directly) #> param() $ErrorActionPreference = 'Stop' $CacheDir = Join-Path $env:LOCALAPPDATA "vulcast-build" $PluginDir = Join-Path $CacheDir "vulcast-vertical" +$buildDir = Join-Path $PluginDir "build_x64" -Write-Host "=== Vulcast Vertical Build v5 ===" -ForegroundColor Cyan +Write-Host "=== Vulcast Vertical Build v6 ===" -ForegroundColor Cyan # 1. Find VS Build Tools $vswhere = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" @@ -19,20 +20,44 @@ $vcvarsall = Join-Path $installPath "VC\Auxiliary\Build\vcvarsall.bat" # 2. Clone or update plugin source if (!(Test-Path (Join-Path $PluginDir ".git"))) { - Write-Host "[1/3] Cloning source..." -ForegroundColor Cyan + Write-Host "[1/4] Cloning source..." -ForegroundColor Cyan git clone --depth 1 "ssh://git@git.216-75-142-55.sslip.io:2222/wawadmin/vulcast-vertical.git" $PluginDir } else { - Write-Host "[1/3] Pulling updates..." -ForegroundColor Cyan + Write-Host "[1/4] Pulling updates..." -ForegroundColor Cyan git -C $PluginDir pull } -# 3. Build using cmake preset (handles deps automatically) -Write-Host "[2/3] Configuring cmake..." -ForegroundColor Cyan -cmd /c "call `"$vcvarsall`" x64 && cmake --preset windows-x64 -S `"$PluginDir`"" +# 3. Write CMakeUserPresets.json to avoid long command lines +Write-Host "[2/4] Writing cmake presets..." -ForegroundColor Cyan +$preset = @{ + version = 6 + configurePresets = @( + @{ + name = "vulcast-local" + displayName = "Vulcast Local Build" + generator = "Visual Studio 17 2022" + architecture = "x64" + binaryDir = "${sourceDir}/build_x64" + cacheVariables = @{ + CMAKE_BUILD_TYPE = "Release" + CMAKE_SYSTEM_VERSION = "10.0.18363.657" + QT_VERSION = "6" + } + } + ) +} | ConvertTo-Json -Depth 10 + +$presetPath = Join-Path $PluginDir "CMakeUserPresets.json" +Set-Content -Path $presetPath -Value $preset -Encoding UTF8 + +# 4. Configure cmake +Write-Host "[3/4] Configuring cmake..." -ForegroundColor Cyan +New-Item -ItemType Directory -Path $buildDir -Force | Out-Null +cmd /c "call `"$vcvarsall`" x64 && cmake --preset vulcast-local -S `"$PluginDir`"" if ($LASTEXITCODE -ne 0) { throw "cmake configure failed" } -Write-Host "[3/3] Building DLL..." -ForegroundColor Cyan -$buildDir = Join-Path $PluginDir "build_x64" +# 5. Build +Write-Host "[4/4] Building DLL..." -ForegroundColor Cyan cmd /c "call `"$vcvarsall`" x64 && cmake --build `"$buildDir`" --config Release" if ($LASTEXITCODE -ne 0) { throw "Build failed" }