param( [string]$BuildDirectory = "$PSScriptRoot/artifacts/native-build", [string]$RuntimeIdentifier = [System.Runtime.InteropServices.RuntimeInformation]::RuntimeIdentifier, [string]$Generator, [string]$CCompiler ) $ErrorActionPreference = 'Stop' $configure = @('-S', "$PSScriptRoot/../native/media", '-B', $BuildDirectory, '-DCMAKE_BUILD_TYPE=Release', "-DVOICECAT_DOTNET_RID=$RuntimeIdentifier") if ($Generator) { $configure += @('-G', $Generator) } if ($CCompiler) { $configure += "-DCMAKE_C_COMPILER=$CCompiler" } & cmake @configure if ($LASTEXITCODE) { throw "Native configure failed: $LASTEXITCODE" } & cmake --build $BuildDirectory --config Release --target voicecat_media --parallel 2 if ($LASTEXITCODE) { throw "Native build failed: $LASTEXITCODE" } & cmake --install $BuildDirectory --config Release --component DotnetMedia --prefix "$PSScriptRoot/artifacts/native" if ($LASTEXITCODE) { throw "Native staging failed: $LASTEXITCODE" }