diff --git a/appveyor.yml b/appveyor.yml
index 493a678a..afe74a53 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -1,31 +1,59 @@
 version: '{build}'
 
-platform:
-  - x86
-  - x64
-
-os: 
-  - Visual Studio 2015
-  - Visual Studio 2017
-
 environment:
   matrix:
-  - additional_flags: ""
-  - additional_flags: "/permissive- /std:c++latest /utf-8"
+    - os: Visual Studio 2015
+      platform: x86
+      FLAGS: ""
+      GENERATOR: Visual Studio 14 2015
 
-matrix:
-  exclude:
-    - additional_flags: "/permissive- /std:c++latest /utf-8"
-      os: Visual Studio 2015
-  
-init: []
+    - os: Visual Studio 2017
+      platform: x86
+      FLAGS: ""
+      GENERATOR: Visual Studio 15 2017
 
-install: []
+    - os: Visual Studio 2017
+      platform: x86
+      FLAGS: "/permissive- /std:c++latest /utf-8"
+      GENERATOR: Visual Studio 15 2017
+
+    - os: Visual Studio 2015
+      platform: x64
+      FLAGS: ""
+      GENERATOR: Visual Studio 14 2015
+
+    - os: Visual Studio 2017
+      platform: x64
+      FLAGS: ""
+      GENERATOR: Visual Studio 15 2017
+
+    - os: Visual Studio 2017
+      platform: x64
+      FLAGS: "/permissive- /std:c++latest /utf-8"
+      GENERATOR: Visual Studio 15 2017
+
+    - COMPILER: mingw
+      platform: x86
+      FLAGS: ""
+      GENERATOR: MinGW Makefiles
+
+    - COMPILER: mingw
+      platform: x64
+      FLAGS: ""
+      GENERATOR: MinGW Makefiles
+
+init:
+  - cmake --version
+  - msbuild /version
+
+install:
+  - if "%COMPILER%"=="mingw" set PATH=C:\MinGW\bin;%PATH%
+
+before_build:
+  - cmake . -G%GENERATOR% -DCMAKE_CXX_FLAGS="%FLAGS%" -DCMAKE_BUILD_TYPE=Release
 
 build_script:
-  - IF "%APPVEYOR_BUILD_WORKER_IMAGE%" == "Visual Studio 2015" ( SET GEN="Visual Studio 14 2015") ELSE (SET GEN="Visual Studio 15 2017")
-  - cmake . -G%GEN% -DCMAKE_CXX_FLAGS="%additional_flags%"
-  - cmake --build . --config Release
+  - cmake --build .
 
 test_script:
   - ctest -C Release -V -j