aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--.appveyor/build.ps172
-rw-r--r--.gitattributes1
-rw-r--r--appveyor.yml16
3 files changed, 89 insertions, 0 deletions
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