mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-12-27 18:31:15 +08:00
88 lines
2.9 KiB
PowerShell
88 lines
2.9 KiB
PowerShell
[CmdletBinding()]
|
|
param(
|
|
$badParam,
|
|
[Parameter(Mandatory=$False)][switch]$win64 = $false,
|
|
[Parameter(Mandatory=$False)][string]$withVSPath = "",
|
|
[Parameter(Mandatory=$False)][string]$withWinSDK = "",
|
|
[Parameter(Mandatory=$False)][switch]$disableMetrics = $false
|
|
)
|
|
Set-StrictMode -Version Latest
|
|
# Powershell2-compatible way of forcing named-parameters
|
|
if ($badParam)
|
|
{
|
|
if ($disableMetrics -and $badParam -eq "1")
|
|
{
|
|
Write-Warning "'disableMetrics 1' is deprecated, please change to 'disableMetrics' (without '1')."
|
|
}
|
|
else
|
|
{
|
|
throw "Only named parameters are allowed."
|
|
}
|
|
}
|
|
|
|
if ($win64)
|
|
{
|
|
Write-Warning "-win64 no longer has any effect; ignored."
|
|
}
|
|
|
|
if (-Not [string]::IsNullOrWhiteSpace($withVSPath))
|
|
{
|
|
Write-Warning "-withVSPath no longer has any effect; ignored."
|
|
}
|
|
|
|
if (-Not [string]::IsNullOrWhiteSpace($withWinSDK))
|
|
{
|
|
Write-Warning "-withWinSDK no longer has any effect; ignored."
|
|
}
|
|
|
|
$scriptsDir = split-path -parent $script:MyInvocation.MyCommand.Definition
|
|
$vcpkgRootDir = $scriptsDir
|
|
while (!($vcpkgRootDir -eq "") -and !(Test-Path "$vcpkgRootDir\.vcpkg-root"))
|
|
{
|
|
Write-Verbose "Examining $vcpkgRootDir for .vcpkg-root"
|
|
$vcpkgRootDir = Split-path $vcpkgRootDir -Parent
|
|
}
|
|
|
|
Write-Verbose "Examining $vcpkgRootDir for .vcpkg-root - Found"
|
|
|
|
# Read the vcpkg-tool config file to determine what release to download
|
|
$Config = ConvertFrom-StringData (Get-Content "$PSScriptRoot\vcpkg-tool-metadata.txt" -Raw)
|
|
$versionDate = $Config.VCPKG_TOOL_RELEASE_TAG
|
|
|
|
if ($env:PROCESSOR_ARCHITECTURE -eq 'ARM64' -or $env:PROCESSOR_IDENTIFIER -match "ARMv[8,9] \(64-bit\)") {
|
|
& "$scriptsDir/tls12-download-arm64.exe" github.com "/microsoft/vcpkg-tool/releases/download/$versionDate/vcpkg-arm64.exe" "$vcpkgRootDir\vcpkg.exe"
|
|
} else {
|
|
& "$scriptsDir/tls12-download.exe" github.com "/microsoft/vcpkg-tool/releases/download/$versionDate/vcpkg.exe" "$vcpkgRootDir\vcpkg.exe"
|
|
}
|
|
|
|
Write-Host ""
|
|
|
|
if ($LASTEXITCODE -ne 0)
|
|
{
|
|
Write-Error "Downloading vcpkg.exe failed. Please check your internet connection, or consider downloading a recent vcpkg.exe from https://github.com/microsoft/vcpkg-tool with a browser."
|
|
throw
|
|
}
|
|
|
|
& "$vcpkgRootDir\vcpkg.exe" version --disable-metrics
|
|
|
|
if ($disableMetrics)
|
|
{
|
|
Set-Content -Value "" -Path "$vcpkgRootDir\vcpkg.disable-metrics" -Force
|
|
}
|
|
elseif (-Not (Test-Path "$vcpkgRootDir\vcpkg.disable-metrics"))
|
|
{
|
|
# Note that we intentionally leave any existing vcpkg.disable-metrics; once a user has
|
|
# opted out they should stay opted out.
|
|
Write-Host @"
|
|
Telemetry
|
|
---------
|
|
vcpkg collects usage data in order to help us improve your experience.
|
|
The data collected by Microsoft is anonymous.
|
|
You can opt-out of telemetry by re-running the bootstrap-vcpkg script with -disableMetrics,
|
|
passing --disable-metrics to vcpkg on the command line,
|
|
or by setting the VCPKG_DISABLE_METRICS environment variable.
|
|
|
|
Read more about vcpkg telemetry at docs/about/privacy.md
|
|
"@
|
|
}
|