mirror of
				https://github.com/OpenMW/openmw.git
				synced 2025-10-27 17:26:41 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			84 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			PowerShell
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			PowerShell
		
	
	
	
	
	
| param (
 | |
|     [switch] $SkipCompress
 | |
| )
 | |
| 
 | |
| $ErrorActionPreference = "Stop"
 | |
| 
 | |
| if (-Not (Test-Path CMakeCache.txt))
 | |
| {
 | |
|     Write-Error "This script must be run from the build directory."
 | |
| }
 | |
| 
 | |
| if (-Not (Test-Path .cmake\api\v1\reply\index-*.json) -Or -Not ((Get-Content -Raw .cmake\api\v1\reply\index-*.json | ConvertFrom-Json).reply.PSObject.Properties.Name -contains "codemodel-v2"))
 | |
| {
 | |
|     Write-Output "Running CMake query..."
 | |
|     New-Item -Type File -Force .cmake\api\v1\query\codemodel-v2
 | |
|     cmake .
 | |
|     if ($LASTEXITCODE -ne 0) {
 | |
|         Write-Error "Command exited with code $LASTEXITCODE"
 | |
|     }
 | |
|     Write-Output "Done."
 | |
| }
 | |
| 
 | |
| try
 | |
| {
 | |
|     Push-Location .cmake\api\v1\reply
 | |
| 
 | |
|     $index = Get-Content -Raw index-*.json | ConvertFrom-Json
 | |
| 
 | |
|     $codemodel = Get-Content -Raw $index.reply."codemodel-v2".jsonFile | ConvertFrom-Json
 | |
| 
 | |
|     $targets = @()
 | |
|     $codemodel.configurations | ForEach-Object {
 | |
|         $_.targets | ForEach-Object {
 | |
|             $target = Get-Content -Raw $_.jsonFile | ConvertFrom-Json
 | |
|             if ($target.type -eq "EXECUTABLE" -or $target.type -eq "SHARED_LIBRARY")
 | |
|             {
 | |
|                 $targets += $target
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     $artifacts = @()
 | |
|     $targets | ForEach-Object {
 | |
|         $_.artifacts | ForEach-Object {
 | |
|             $artifacts += $_.path
 | |
|         }
 | |
|     }
 | |
| }
 | |
| finally
 | |
| {
 | |
|     Pop-Location
 | |
| }
 | |
| 
 | |
| if (-not (Test-Path symstore-venv))
 | |
| {
 | |
|     python -m venv symstore-venv
 | |
|     if ($LASTEXITCODE -ne 0) {
 | |
|         Write-Error "Command exited with code $LASTEXITCODE"
 | |
|     }
 | |
| }
 | |
| $symstoreVersion = "0.3.4"
 | |
| if (-not (Test-Path symstore-venv\Scripts\symstore.exe) -or -not ((symstore-venv\Scripts\pip show symstore | Select-String '(?<=Version: ).*').Matches.Value -eq $symstoreVersion))
 | |
| {
 | |
|     symstore-venv\Scripts\pip install symstore==$symstoreVersion
 | |
|     if ($LASTEXITCODE -ne 0) {
 | |
|         Write-Error "Command exited with code $LASTEXITCODE"
 | |
|     }
 | |
| }
 | |
| 
 | |
| $artifacts = $artifacts | Where-Object { Test-Path $_ }
 | |
| 
 | |
| Write-Output "Storing symbols..."
 | |
| 
 | |
| $optionalArgs = @()
 | |
| if (-not $SkipCompress) {
 | |
|     $optionalArgs += "--compress"
 | |
| }
 | |
| 
 | |
| symstore-venv\Scripts\symstore $optionalArgs --skip-published .\SymStore @artifacts
 | |
| if ($LASTEXITCODE -ne 0) {
 | |
|     Write-Error "Command exited with code $LASTEXITCODE"
 | |
| }
 | |
| 
 | |
| Write-Output "Done."
 |