early-access version 2853
This commit is contained in:
73
externals/vcpkg/ports/aws-sdk-cpp/generateFeatures.ps1
vendored
Executable file
73
externals/vcpkg/ports/aws-sdk-cpp/generateFeatures.ps1
vendored
Executable file
@@ -0,0 +1,73 @@
|
||||
[CmdletBinding()]
|
||||
param(
|
||||
[Parameter(Mandatory=$true)][string]$SourcesRef,
|
||||
[Parameter(Mandatory=$false)][string]$PortDirectory = $PSScriptRoot,
|
||||
[Parameter(Mandatory=$false)][string]$vcpkg = "$PSScriptRoot/../../vcpkg"
|
||||
)
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
|
||||
$ManifestIn = "$PortDirectory/vcpkg.in.json"
|
||||
$ManifestOut = "$PortDirectory/vcpkg.json"
|
||||
$CMakeFragmentFile = "$PortDirectory/compute_build_only.cmake"
|
||||
|
||||
$ExtractedSources = "${env:TEMP}/aws-sdk-cpp-generateFeatures-$SourcesRef"
|
||||
if (-not (Test-Path $ExtractedSources)) {
|
||||
if (Test-Path "$ExtractedSources.tmp") {
|
||||
Remove-Item -Force "$ExtractedSources.tmp"
|
||||
}
|
||||
git clone "https://github.com/aws/aws-sdk-cpp" "$ExtractedSources.tmp" | Out-Host
|
||||
git -c "$ExtractedSources.tmp" checkout $SourcesRef
|
||||
Move-Item "$ExtractedSources.tmp" "$ExtractedSources"
|
||||
}
|
||||
Write-Host "Using sources directory: $ExtractedSources"
|
||||
|
||||
|
||||
$subfolders = Get-Item $ExtractedSources\aws-cpp-sdk-*
|
||||
|
||||
$manifest = Get-Content $ManifestIn | ConvertFrom-Json
|
||||
$manifest | Add-Member `
|
||||
-NotePropertyName '$note' `
|
||||
-NotePropertyValue 'Automatically generated by generateFeatures.ps1'
|
||||
$manifest | Add-Member -NotePropertyName 'features' -NotePropertyValue @{}
|
||||
|
||||
$cmakefragmenttext = @("# Automatically generated by generateFeatures.ps1")
|
||||
|
||||
function GetDescription($dir, $modulename)
|
||||
{
|
||||
if (Test-Path "$dir\CMakeLists.txt")
|
||||
{
|
||||
$descs = @(Select-String -Path "$dir\CMakeLists.txt" -Pattern "`"C\+\+ SDK for the AWS [^`"]*`"")
|
||||
if ($descs.count -eq 1) {
|
||||
$desc = $descs[0].Matches.Value -replace "`"",""
|
||||
"$desc"
|
||||
}
|
||||
else { "C++ SDK for the AWS $modulename service" }
|
||||
}
|
||||
else { "C++ SDK for the AWS $modulename service" }
|
||||
}
|
||||
|
||||
foreach ($subfolder in $subfolders)
|
||||
{
|
||||
$modulename = $subfolder.name -replace "^aws-cpp-sdk-",""
|
||||
if ($modulename -match "-tests`$") { continue }
|
||||
if ($modulename -match "-sample`$") { continue }
|
||||
if ($modulename -eq "core") { continue }
|
||||
|
||||
$lowermodulename = $modulename.ToLower()
|
||||
|
||||
$manifest.features.Add("$lowermodulename", @{ description=(GetDescription $subfolder $modulename) })
|
||||
|
||||
$cmakefragmenttext += @(
|
||||
"if(`"$lowermodulename`" IN_LIST FEATURES)",
|
||||
" list(APPEND BUILD_ONLY $modulename)",
|
||||
"endif()"
|
||||
)
|
||||
}
|
||||
|
||||
[IO.File]::WriteAllText($ManifestOut, (ConvertTo-Json -Depth 5 -InputObject $manifest))
|
||||
|
||||
Write-Verbose ($cmakefragmenttext -join "`n")
|
||||
[IO.File]::WriteAllText($CMakeFragmentFile, ($cmakefragmenttext -join "`n") +"`n")
|
||||
|
||||
& $vcpkg format-manifest --feature-flags=-manifests $ManifestOut
|
Reference in New Issue
Block a user