diff --git a/build-scripts/winrtbuild.bat b/build-scripts/winrtbuild.bat deleted file mode 100644 index fb3159888..000000000 --- a/build-scripts/winrtbuild.bat +++ /dev/null @@ -1,8 +0,0 @@ -@ECHO OFF -REM -REM winrtbuild.bat: a batch file to help launch the winrtbuild.ps1 -REM Powershell script, either from Windows Explorer, or through Buildbot. -REM -SET ThisScriptsDirectory=%~dp0 -SET PowerShellScriptPath=%ThisScriptsDirectory%winrtbuild.ps1 -PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& '%PowerShellScriptPath%'"; \ No newline at end of file diff --git a/build-scripts/winrtbuild.ps1 b/build-scripts/winrtbuild.ps1 deleted file mode 100644 index ad768c362..000000000 --- a/build-scripts/winrtbuild.ps1 +++ /dev/null @@ -1,302 +0,0 @@ -# -# winrtbuild.ps1 -- A Powershell script to build all SDL/WinRT variants, -# across all WinRT platforms, in all of their supported, CPU architectures. -# -# Initial version written by David Ludwig -# -# This script can be launched from Windows Explorer by double-clicking -# on winrtbuild.bat -# -# Output will be placed in the following subdirectories of the SDL source -# tree: -# * VisualC-WinRT\lib\ -- final .dll, .lib, and .pdb files -# * VisualC-WinRT\obj\ -- intermediate build files -# -# Recommended Dependencies: -# * Windows 8.1 or higher -# * Powershell 4.0 or higher (included as part of Windows 8.1) -# * Visual C++ 2012, for building Windows 8.0 and Windows Phone 8.0 binaries. -# * Visual C++ 2013, for building Windows 8.1 and Windows Phone 8.1 binaries -# * SDKs for Windows 8.0, Windows 8.1, Windows Phone 8.0, and -# Windows Phone 8.1, as needed -# -# Commom parameters/variables may include, but aren't strictly limited to: -# * PlatformToolset: the name of one of Visual Studio's build platforms. -# Different PlatformToolsets output different binaries. One -# PlatformToolset exists for each WinRT platform. Possible values -# may include: -# - "v110": Visual Studio 2012 build tools, plus the Windows 8.0 SDK -# - "v110_wp80": Visual Studio 2012 build tools, plus the Windows Phone 8.0 SDK -# - "v120": Visual Studio 2013 build tools, plus the Windows 8.1 SDK -# - "v120_wp81": Visual Studio 2013 build tools, plus the Windows Phone 8.1 SDK -# * VSProjectPath: the full path to a Visual Studio or Visual C++ project file -# * VSProjectName: the internal name of a Visual Studio or Visual C++ project -# file. Some of Visual Studio's own build tools use this name when -# calculating paths for build-output. -# * Platform: a Visual Studio platform name, which often maps to a CPU -# CPU architecture. Possible values may include: "Win32" (for 32-bit x86), -# "ARM", or "x64" (for 64-bit x86). -# - -# Base version of SDL, used for packaging purposes -$SDLVersion = "2.23.1" - -# Gets the .bat file that sets up an MSBuild environment, given one of -# Visual Studio's, "PlatformToolset"s. -function Get-MSBuild-Env-Launcher -{ - param( - [Parameter(Mandatory=$true,Position=1)][string]$PlatformToolset - ) - - if ($PlatformToolset -eq "v110") { # Windows 8.0 (not Windows Phone), via VS 2012 - return "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat" - } - if ($PlatformToolset -eq "v110_wp80") { # Windows Phone 8.0, via VS 2012 - return "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\WPSDK\WP80\vcvarsphoneall.bat" - } - if ($PlatformToolset -eq "v120") { # Windows 8.1 (not Windows Phone), via VS 2013 - return "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" - } - if ($PlatformToolset -eq "v120_wp81") { # Windows Phone 8.1, via VS 2013 - return "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" - } - if ($PlatformToolset -eq "v140") { # Windows 10, via VS 2015 - return "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" - } - return "" -} - -# Gets a string that identifies the build-variant of SDL/WinRT that is specific -# to a particular Visual Studio PlatformToolset. -function Get-SDL-WinRT-Variant-Name -{ - param( - [Parameter(Mandatory=$true,Position=1)][string]$PlatformToolset, - - # If true, append a string to this function's output, identifying the - # build-variant's minimum-supported version of Visual Studio. - [switch]$IncludeVSSuffix = $false - ) - - if ($PlatformToolset -eq "v110") { # Windows 8.0 (not Windows Phone), via VS 2012 project files - if ($IncludeVSSuffix) { - return "WinRT80_VS2012" - } else { - return "WinRT80" - } - } - if ($PlatformToolset -eq "v110_wp80") { # Windows Phone 8.0, via VS 2012 project files - if ($IncludeVSSuffix) { - return "WinPhone80_VS2012" - } else { - return "WinPhone80" - } - } - if ($PlatformToolset -eq "v120") { # Windows 8.1 (not Windows Phone), via VS 2013 project files - if ($IncludeVSSuffix) { - return "WinRT81_VS2013" - } else { - return "WinRT81" - } - } - if ($PlatformToolset -eq "v120_wp81") { # Windows Phone 8.1, via VS 2013 project files - if ($IncludeVSSuffix) { - return "WinPhone81_VS2013" - } else { - return "WinPhone81" - } - } - if ($PlatformToolset -eq "v140") { # Windows 10, via VS 2015 project files - if ($IncludeVSSuffix) { - return "UWP_VS2015" - } else { - return "UWP" - } - } - return "" -} - -# Returns the internal name of a Visual Studio Project. -# -# The internal name of a VS Project is encoded inside the project file -# itself, inside a set of XML tags. -function Get-VS-ProjectName -{ - param( - [Parameter(Mandatory=$true,Position=1)]$VSProjectPath - ) - - # For now, just do a regex for the project name: - $matches = (Get-Content $VSProjectPath | Select-String -Pattern ".*([^<]+)<.*").Matches - foreach ($match in $matches) { - if ($match.Groups.Count -ge 1) { - return $match.Groups[1].Value - } - } - return $null -} - -# Build a specific variant of SDL/WinRT -function Build-SDL-WinRT-Variant -{ - # - # Read in arguments: - # - param ( - # name of an SDL project file, minus extensions and - # platform-identifying suffixes - [Parameter(Mandatory=$true,Position=1)][string]$SDLProjectName, - - [Parameter(Mandatory=$true,Position=2)][string]$PlatformToolset, - - [Parameter(Mandatory=$true,Position=3)][string]$Platform - ) - - # - # Derive other properties from read-in arguments: - # - - # The .bat file to setup a platform-appropriate MSBuild environment: - $BatchFileForMSBuildEnv = Get-MSBuild-Env-Launcher $PlatformToolset - - # The full path to the VS Project that'll be built: - $VSProjectPath = "$PSScriptRoot\..\VisualC-WinRT\$(Get-SDL-WinRT-Variant-Name $PlatformToolset -IncludeVSSuffix)\$SDLProjectName-$(Get-SDL-WinRT-Variant-Name $PlatformToolset).vcxproj" - - # The internal name of the VS Project, used in some post-build steps: - $VSProjectName = Get-VS-ProjectName $VSProjectPath - - # Where to place output binaries (.dll, .lib, and .pdb files): - $OutDir = "$PSScriptRoot\..\VisualC-WinRT\lib\$(Get-SDL-WinRT-Variant-Name $PlatformToolset)\$Platform" - - # Where to place intermediate build files: - $IntermediateDir = "$PSScriptRoot\..\VisualC-WinRT\obj\$SDLProjectName-$(Get-SDL-WinRT-Variant-Name $PlatformToolset)\$Platform" - - # - # Build the VS Project: - # - cmd.exe /c " ""$BatchFileForMSBuildEnv"" x86 & msbuild ""$VSProjectPath"" /p:Configuration=Release /p:Platform=$Platform /p:OutDir=""$OutDir\\"" /p:IntDir=""$IntermediateDir\\""" | Out-Host - $BuildResult = $? - - # - # Move .dll files into place. This fixes a problem whereby MSBuild may - # put output files into a sub-directory of $OutDir, rather than $OutDir - # itself. - # - if (Test-Path "$OutDir\$VSProjectName\") { - Move-Item -Force "$OutDir\$VSProjectName\*" "$OutDir" - } - - # - # Clean up unneeded files in $OutDir: - # - if (Test-Path "$OutDir\$VSProjectName\") { - Remove-Item -Recurse "$OutDir\$VSProjectName" - } - Remove-Item "$OutDir\*.exp" - Remove-Item "$OutDir\*.ilk" - Remove-Item "$OutDir\*.pri" - - # - # All done. Indicate success, or failure, to the caller: - # - #echo "RESULT: $BuildResult" | Out-Host - return $BuildResult -} - - -# -# Build each variant, with corresponding .dll, .lib, and .pdb files: -# -$DidAnyDLLBuildFail = $false -$DidAnyNugetBuildFail = $false - -# Ryan disabled WP8.0, because it doesn't appear to have mmdeviceapi.h that SDL_wasapi needs. -# My assumption is that no one will miss this, but send patches otherwise! --ryan. -# Build for Windows Phone 8.0, via VC++ 2012: -#if ( ! (Build-SDL-WinRT-Variant "SDL" "v110_wp80" "ARM")) { $DidAnyDLLBuildFail = $true } -#if ( ! (Build-SDL-WinRT-Variant "SDL" "v110_wp80" "Win32")) { $DidAnyDLLBuildFail = $true } - -# Build for Windows Phone 8.1, via VC++ 2013: -if ( ! (Build-SDL-WinRT-Variant "SDL" "v120_wp81" "ARM")) { $DidAnyDLLBuildFail = $true } -if ( ! (Build-SDL-WinRT-Variant "SDL" "v120_wp81" "Win32")) { $DidAnyDLLBuildFail = $true } - -# Build for Windows 8.0 and Windows RT 8.0, via VC++ 2012: -# -# Win 8.0 auto-building was disabled on 2017-Feb-25, by David Ludwig . -# Steam's OS-usage surveys indicate that Windows 8.0 use is pretty much nil, plus -# Microsoft hasn't supported Windows 8.0 development for a few years now. -# The commented-out lines below may still work on some systems, though. -# -#if ( ! (Build-SDL-WinRT-Variant "SDL" "v110" "ARM")) { $DidAnyDLLBuildFail = $true } -#if ( ! (Build-SDL-WinRT-Variant "SDL" "v110" "Win32")) { $DidAnyDLLBuildFail = $true } -#if ( ! (Build-SDL-WinRT-Variant "SDL" "v110" "x64")) { $DidAnyDLLBuildFail = $true } - -# Build for Windows 8.1 and Windows RT 8.1, via VC++ 2013: -if ( ! (Build-SDL-WinRT-Variant "SDL" "v120" "ARM")) { $DidAnyDLLBuildFail = $true } -if ( ! (Build-SDL-WinRT-Variant "SDL" "v120" "Win32")) { $DidAnyDLLBuildFail = $true } -if ( ! (Build-SDL-WinRT-Variant "SDL" "v120" "x64")) { $DidAnyDLLBuildFail = $true } - -# Build for Windows 10, via VC++ 2015 -if ( ! (Build-SDL-WinRT-Variant "SDL" "v140" "ARM")) { $DidAnyDLLBuildFail = $true } -if ( ! (Build-SDL-WinRT-Variant "SDL" "v140" "Win32")) { $DidAnyDLLBuildFail = $true } -if ( ! (Build-SDL-WinRT-Variant "SDL" "v140" "x64")) { $DidAnyDLLBuildFail = $true } - -# Build NuGet packages, if possible -if ($DidAnyDLLBuildFail -eq $true) { - Write-Warning -Message "Unable to build all variants. NuGet packages will not be built." - $DidAnyNugetBuildFail = $true -} else { - $NugetPath = (Get-Command -CommandType Application nuget.exe | %{$_.Path}) 2> $null - if ("$NugetPath" -eq "") { - Write-Warning -Message "Unable to find nuget.exe. NuGet packages will not be built." - $DidAnyNugetBuildFail = $true - } else { - Write-Host -ForegroundColor Cyan "Building SDL2 NuGet packages..." - Write-Host -ForegroundColor Cyan "... via NuGet install: $NugetPath" - $NugetOutputDir = "$PSScriptRoot\..\VisualC-WinRT\lib\nuget" - Write-Host -ForegroundColor Cyan "... output directory: $NugetOutputDir" - $SDLHGRevision = $($(hg log -l 1 --repository "$PSScriptRoot\.." | select-string "changeset") -Replace "changeset:\W*(\d+).*",'$1') 2>$null - Write-Host -ForegroundColor Cyan "... HG Revision: $SDLHGRevision" - - # Base options to nuget.exe - $NugetOptions = @("pack", "PACKAGE_NAME_WILL_GO_HERE", "-Output", "$NugetOutputDir") - - # Try attaching hg revision to NuGet package: - $NugetOptions += "-Version" - if ("$SDLHGRevision" -eq "") { - Write-Warning -Message "Unable to find the Mercurial revision (maybe hg.exe can't be found?). NuGet packages will not have this attached to their name." - $NugetOptions += "$SDLVersion-Unofficial" - } else { - $NugetOptions += "$SDLVersion.$SDLHGRevision-Unofficial" - } - - # Create NuGet output dir, if not yet created: - if ($(Test-Path "$NugetOutputDir") -eq $false) { - New-Item "$NugetOutputDir" -type directory - } - - # Package SDL2: - $NugetOptions[1] = "$PSScriptRoot\..\VisualC-WinRT\SDL2-WinRT.nuspec" - &"$NugetPath" $NugetOptions -Symbols - if ( ! $? ) { $DidAnyNugetBuildFail = $true } - - # Package SDL2main: - $NugetOptions[1] = "$PSScriptRoot\..\VisualC-WinRT\SDL2main-WinRT-NonXAML.nuspec" - &"$NugetPath" $NugetOptions - if ( ! $? ) { $DidAnyNugetBuildFail = $true } - } -} - - -# Let the script's caller know whether or not any errors occurred. -# Exit codes compatible with Buildbot are used (1 for error, 0 for success). -if ($DidAnyDLLBuildFail -eq $true) { - Write-Error -Message "Unable to build all known variants of SDL2 for WinRT" - exit 1 -} elseif ($DidAnyNugetBuildFail -eq $true) { - Write-Warning -Message "Unable to build NuGet packages" - exit 0 # Should NuGet package build failure lead to a non-failing result code instead? -} else { - exit 0 -} diff --git a/docs/release_checklist.md b/docs/release_checklist.md index b5d9bafb9..33769949e 100644 --- a/docs/release_checklist.md +++ b/docs/release_checklist.md @@ -11,7 +11,6 @@ `CFBundleVersion` * `Makefile.os2`: `VERSION` * `Makefile.w32`: `*_VERSION` - * `build-scripts/winrtbuild.ps1`: `$SDLVersion` * `include/SDL_version.h`: `SDL_*_VERSION`, `SDL_PATCHLEVEL` * `src/main/windows/version.rc`: `FILEVERSION`, `PRODUCTVERSION`, `FileVersion`, `ProductVersion` diff --git a/test/versioning.sh b/test/versioning.sh index e224ff5be..c82d9572b 100755 --- a/test/versioning.sh +++ b/test/versioning.sh @@ -67,14 +67,6 @@ else not_ok "Makefile.w32 $version disagrees with SDL_version.h $ref_version" fi -version=$(sed -Ene 's/^[$]SDLVersion = "([0-9.]*)"\r?$/\1/p' build-scripts/winrtbuild.ps1) - -if [ "$ref_version" = "$version" ]; then - ok "winrtbuild.ps1 $version" -else - not_ok "winrtbuild.ps1 $version disagrees with SDL_version.h $ref_version" -fi - tuple=$(sed -ne 's/^ *FILEVERSION *//p' src/main/windows/version.rc | tr -d '\r') ref_tuple="${ref_major},${ref_minor},${ref_micro},0"