diff --git a/script/windows/bootstrap.ps1 b/script/windows/bootstrap.ps1 index 33f5a28c79..927d6650ec 100644 --- a/script/windows/bootstrap.ps1 +++ b/script/windows/bootstrap.ps1 @@ -46,7 +46,7 @@ function Show-BootstrapPreview { Write-Output 'It will:' Write-Output ' - Check for Git for Windows.' Write-Output ' - Install Rust if cargo is unavailable.' - Write-Output ' - Install Visual Studio Build Tools, jq, CMake, InnoSetup, and gcloud as needed.' + Write-Output ' - Install Visual Studio Build Tools, jq, CMake, InnoSetup, protoc, LLVM, and gcloud as needed.' Write-Output ' - Install Cargo test dependencies.' if (-not $InstallCommonSkills) { @@ -157,6 +157,18 @@ winget install -e --id Kitware.CMake # We use InnoSetup to build our release bundle installer. winget install -e --id JRSoftware.InnoSetup +# protoc (Protocol Buffers compiler) is required by prost-build. +winget install -e --id Google.Protobuf +if (-not (Get-Command -Name protoc -Type Application -ErrorAction SilentlyContinue)) { + $env:PATH += ";$env:LOCALAPPDATA\Microsoft\WinGet\Links" +} + +# LLVM provides libclang, which is required by bindgen. +winget install -e --id LLVM.LLVM +if (-not (Get-Command -Name clang -Type Application -ErrorAction SilentlyContinue)) { + $env:PATH += ";$env:ProgramFiles\LLVM\bin" +} + # If we don't see gcloud command, try adding the install location to the PATH. if (-not (Get-Command -Name gcloud -Type Application -ErrorAction SilentlyContinue)) { $env:PATH += ";$env:LOCALAPPDATA\Google\Cloud SDK\google-cloud-sdk\bin"