setup_cmake.ps1 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. # Copyright The OpenTelemetry Authors
  2. # SPDX-License-Identifier: Apache-2.0
  3. $ErrorActionPreference = "Stop"
  4. trap { $host.SetShouldExit(1) }
  5. if (-not $env:CMAKE_VERSION) { $env:CMAKE_VERSION = "3.31.6" }
  6. $CMAKE_VERSION = $env:CMAKE_VERSION
  7. choco uninstall cmake cmake.install -y --remove-dependencies --skip-autouninstaller --force --no-progress
  8. Write-Host "Installing CMake version $CMAKE_VERSION ..."
  9. choco install cmake --version=$CMAKE_VERSION --allow-downgrade -y --force --no-progress
  10. function Get-Version {
  11. param (
  12. [string]$output
  13. )
  14. if ($output -match '(\d+\.\d+\.\d+)') {
  15. return $matches[1]
  16. }
  17. return $null
  18. }
  19. $cmakeOutput = & cmake --version | Select-Object -First 1
  20. $ctestOutput = & ctest --version | Select-Object -First 1
  21. $cpackOutput = & cpack --version | Select-Object -First 1
  22. $cmakeVersion = Get-Version $cmakeOutput
  23. $ctestVersion = Get-Version $ctestOutput
  24. $cpackVersion = Get-Version $cpackOutput
  25. Write-Host "cmake version $cmakeVersion detected"
  26. Write-Host "ctest version $ctestVersion detected"
  27. Write-Host "cpack version $cpackVersion detected"
  28. if ($cmakeVersion -ne $CMAKE_VERSION) {
  29. Write-Error "CMake version mismatch: expected $CMAKE_VERSION, installed $cmakeVersion"
  30. exit 1
  31. }
  32. if ($ctestVersion -ne $CMAKE_VERSION) {
  33. Write-Error "CTest version mismatch: expected $CMAKE_VERSION, installed $ctestVersion"
  34. exit 1
  35. }
  36. if ($cpackVersion -ne $CMAKE_VERSION) {
  37. Write-Error "CPack version mismatch: expected $CMAKE_VERSION, installed $cpackVersion"
  38. exit 1
  39. }