aboutsummaryrefslogtreecommitdiff
path: root/ports/aws-sdk-cpp/generateFeatures.ps1
diff options
context:
space:
mode:
Diffstat (limited to 'ports/aws-sdk-cpp/generateFeatures.ps1')
-rw-r--r--ports/aws-sdk-cpp/generateFeatures.ps151
1 files changed, 51 insertions, 0 deletions
diff --git a/ports/aws-sdk-cpp/generateFeatures.ps1 b/ports/aws-sdk-cpp/generateFeatures.ps1
new file mode 100644
index 000000000..8c8b1a342
--- /dev/null
+++ b/ports/aws-sdk-cpp/generateFeatures.ps1
@@ -0,0 +1,51 @@
+[CmdletBinding()]
+param(
+ [Parameter(Mandatory=$true)][string]$ExtractedSources,
+ [Parameter(Mandatory=$true)][string]$ControlFileIn,
+ [Parameter(Mandatory=$true)][string]$ControlFile,
+ [Parameter(Mandatory=$true)][string]$CMakeFragmentFile
+)
+
+$subfolders = Get-Item $ExtractedSources\aws-cpp-sdk-*
+
+$controltext = gc $ControlFileIn
+$controltext += @("# Automatically generated by generateFeatures.ps1")
+
+$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 "`"",""
+ "Description: $desc"
+ }
+ else { "Description: C++ SDK for the AWS $modulename service" }
+ }
+ else { "Description: C++ SDK for the AWS $modulename service" }
+}
+
+$subfolders | % {
+ $modulename = $_.name -replace "^aws-cpp-sdk-",""
+ if ($modulename -match "-tests`$") { return }
+ if ($modulename -match "-sample`$") { return }
+ if ($modulename -eq "core") { return }
+
+ $controltext += @("")
+ $controltext += @("Feature: $modulename")
+ $controltext += @(GetDescription $_ $modulename)
+
+ $cmakefragmenttext += @(
+ "if(`"$modulename`" IN_LIST FEATURES)",
+ " list(APPEND BUILD_ONLY $modulename)",
+ "endif()"
+ )
+}
+
+Write-Verbose ($controltext -join "`n")
+[IO.File]::WriteAllText($ControlFile, ($controltext -join "`n")+"`n")
+
+Write-Verbose ($cmakefragmenttext -join "`n")
+[IO.File]::WriteAllText($CMakeFragmentFile, ($cmakefragmenttext -join "`n") +"`n")