1
0
Fork 0
mirror of https://github.com/VSadov/Satori.git synced 2025-06-08 03:27:04 +09:00
Satori/eng/native/set-cmake-path.ps1

48 lines
1.7 KiB
PowerShell

# This script locates the CMake executable for the build system and outputs either the "set CMakePath=..."
# command (if CMake is found) or the "exit /b 1" command (if not found) for evaluating from batch files.
Set-StrictMode -Version 3
function LocateCMake {
# Find the first cmake.exe on the PATH
$cmakeApp = (Get-Command cmake.exe -ErrorAction SilentlyContinue)
if ($cmakeApp -ne $null) {
return $cmakeApp.Path
}
# Find cmake.exe using the registry
$cmakeRegKey = Get-ItemProperty HKLM:\SOFTWARE\Kitware\CMake -Name InstallDir -ErrorAction SilentlyContinue
if ($cmakeRegKey -eq $null) {
$cmakeRegKey = Get-ItemProperty HKLM:\SOFTWARE\Wow6432Node\Kitware\CMake -Name InstallDir -ErrorAction SilentlyContinue
}
if ($cmakeRegKey -ne $null) {
$cmakePath = $cmakeRegKey.InstallDir + "bin\cmake.exe"
if (Test-Path $cmakePath -PathType Leaf) {
return $cmakePath
}
}
return $null
}
try {
$cmakePath = LocateCMake
if ($cmakePath -eq $null) {
throw "CMake is a pre-requisite to build this repository but it was not found on the PATH or in the registry. Please install CMake from https://cmake.org/download/."
}
$version = [Version]$(& $cmakePath --version | Select-String -Pattern '\d+\.\d+\.\d+' | %{$_.Matches.Value})
if ($version -lt [Version]"3.16.4") {
throw "CMake 3.16.4 or newer is required for building this repository. The newest version of CMake installed is $version. Please install CMake 3.16.4 or newer from https://cmake.org/download/."
}
[System.Console]::WriteLine("set CMakePath=" + $cmakePath)
}
catch {
[System.Console]::Error.WriteLine($_.Exception.Message)
[System.Console]::WriteLine("exit /b 1")
}