From 46b60021dd9205d20d18bc143998fb39c24aa79a Mon Sep 17 00:00:00 2001 From: Egor Tensin Date: Wed, 21 Aug 2019 23:21:56 +0300 Subject: add AppVeyor configuration --- .appveyor/build.ps1 | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++ .gitattributes | 1 + appveyor.yml | 16 ++++++++++++ 3 files changed, 89 insertions(+) create mode 100644 .appveyor/build.ps1 create mode 100644 .gitattributes create mode 100644 appveyor.yml diff --git a/.appveyor/build.ps1 b/.appveyor/build.ps1 new file mode 100644 index 0000000..865bc10 --- /dev/null +++ b/.appveyor/build.ps1 @@ -0,0 +1,72 @@ +param( + [string] $BuildDir = 'C:\Projects\build', + [string] $ProjectDir = $null, + [string] $Platform = $null, + [string] $Configuration = $null +) + +$ErrorActionPreference = "Stop"; + +function Invoke-Exe { + param( + [ScriptBlock] $Cmd, + [int[]] $AllowedExitCodes = @(0) + ) + + $backupErrorActionPreference = $script:ErrorActionPreference + $script:ErrorActionPreference = 'Continue' + + try { + & $Cmd + if ($AllowedExitCodes -notcontains $LastExitCode) { + throw "External command failed with exit code ${LastExitCode}: $Cmd" + } + } finally { + $script:ErrorActionPreference = $backupErrorActionPreference + } +} + +function Test-AppVeyor { + return Test-Path env:APPVEYOR +} + +function Build-Project { + param( + [Parameter(Mandatory=$true)] + [string] $ProjectDir, + [Parameter(Mandatory=$true)] + [string] $BuildDir, + [Parameter(Mandatory=$true)] + [string] $Platform, + [Parameter(Mandatory=$true)] + [string] $Configuration + ) + + mkdir $BuildDir + cd $BuildDir + + Invoke-Exe { cmake -Wno-dev ` + -G "Visual Studio 14 2015" -A $Platform ` + $ProjectDir + } + + Invoke-Exe { cmake --build . --config "$Configuration" -- /m } +} + +if (Test-AppVeyor) { + $cwd = pwd + $ProjectDir = $env:APPVEYOR_BUILD_FOLDER + $BuildDir = 'C:\Projects\build' + $Platform = $env:PLATFORM + $Configuration = $env:CONFIGURATION +} + +Build-Project ` + -ProjectDir $ProjectDir ` + -BuildDir $BuildDir ` + -Platform $Platform ` + -Configuration $Configuration + +if (Test-AppVeyor) { + cd $cwd +} diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..b086bda --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +*.ps1 text eol=crlf diff --git a/appveyor.yml b/appveyor.yml new file mode 100644 index 0000000..b0ca0ec --- /dev/null +++ b/appveyor.yml @@ -0,0 +1,16 @@ +version: '{build}' + +branches: + only: + - master + +platform: + - Win32 + - x64 + +configuration: + - Debug + - Release + +build_script: + - ps: .\.appveyor\build.ps1 -- cgit v1.2.3