THRIFT-4081: appveyor retooling - added mingw64 build as a second job to the CI build process

This closes #1205
diff --git a/appveyor.yml b/appveyor.yml
index a4df229..b25e7d2 100755
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -1,3 +1,4 @@
+#
 # Licensed to the Apache Software Foundation (ASF) under one
 # or more contributor license agreements. See the NOTICE file
 # distributed with this work for additional information
@@ -18,73 +19,77 @@
 
 # build Apache Thrift on AppVeyor - https://ci.appveyor.com
 
-shallow_clone: true
-clone_depth: 10
+version: '1.0.0-dev.{build}'
 
-version: '{build}'
+shallow_clone: true
+
 os:
-# - Windows Server 2012 R2
-- Visual Studio 2015
+  - Visual Studio 2015
+
+cache:
+  - C:\projects\thrift\buildcache -> build\appveyor\MSVC-appveyor-install.bat
+  - C:\ProgramData\chocolatey\lib -> build\appveyor\MSVC-appveyor-install.bat
+  - C:\msys64\var\cache\pacman    -> build\appveyor\MSYS-appveyor-install.bat
+
+configuration:
+# - Debug
+  - Release
+
+platform:
+# - x86
+  - x64
 
 environment:
-  BOOST_ROOT: C:\Libraries\boost_1_59_0
-  BOOST_LIBRARYDIR: C:\Libraries\boost_1_59_0\lib64-msvc-14.0
+  matrix:
+   - PROFILE: MSVC2015
+     BOOST_VERSION: 1.63.0
+     LIBEVENT_VERSION: 2.0.22
+     PYTHON_VERSION: 3.6
+     QT_VERSION: 5.8
+     ZLIB_VERSION: 1.2.11
+
+   - PROFILE: MINGW
+
+#   - PROFILE: MSVC2010
+#     BOOST_VERSION: 1.59.0
+#     LIBEVENT_VERSION: 2.0.22
+#     PYTHON_VERSION: 3.3
+#     ZLIB_VERSION: 1.2.8
+
+#   - PROFILE: MSYS
+
+matrix:
+  allow_failures:
+    # MSVC2010 appears to be 32-bit only in appveyor
+    - platform: x64
+      PROFILE: MSVC2010
+
+    # Only have 64-bit MinGW working so far (inside MSYS2)
+    - platform: x86
+      PROFILE: MINGW
+    - platform: x86
+      PROFILE: MSYS
 
 install:
-- '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x64'
-- cd \
-  # Zlib
-- appveyor DownloadFile https://github.com/madler/zlib/archive/v1.2.8.tar.gz
-- 7z x v1.2.8.tar.gz -so | 7z x -si -ttar > nul
-- cd zlib-1.2.8
-- cmake -G "Visual Studio 14 2015 Win64" .
-- cmake --build . --config release
-- cd ..
-  # Libevent
-- appveyor DownloadFile https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz
-- 7z x libevent-2.0.22-stable.tar.gz -so | 7z x -si -ttar > nul
-- cd libevent-2.0.22-stable
-- nmake -f Makefile.nmake
-- mkdir lib
-- move *.lib lib\
-- move WIN32-Code\event2\* include\event2\
-- move *.h include\
-- cd ..
-- appveyor-retry cinst -y ant
-- appveyor-retry cinst -y winflexbison3
-# installation of ant brings in the latest jdk and sets JAVA_HOME - we need to pick these up from the registry
-- refreshenv
-- cd %APPVEYOR_BUILD_FOLDER%
-# TODO: Enable Haskell build
-# - cinst HaskellPlatform -version 2014.2.0.0
-
+  - cd %APPVEYOR_BUILD_FOLDER%
+  - call build\appveyor\%PROFILE:~0,4%-appveyor-install.bat
+  - refreshenv
 
 build_script:
-- echo PATH=%PATH%
-- set PATH=C:\ProgramData\chocolatey\bin;%PATH%
-- echo JAVA_HOME=%JAVA_HOME%
-# TODO: Enable Haskell build
-# - set PATH=%PATH%;C:\Program Files (x86)\Haskell Platform\2014.2.0.0\bin
-# - set PATH=%PATH%;C:\Program Files (x86)\Haskell Platform\2014.2.0.0\lib\extralibs\bin
-- set PATH=C:\Python27-x64\scripts;C:\Python27-x64;%PATH%
-- pip install ipaddress backports.ssl_match_hostname tornado twisted
-- mkdir cmake-build
-- cd cmake-build
-- cmake -G "Visual Studio 14 2015 Win64" -DWITH_SHARED_LIB=OFF -DLIBEVENT_ROOT=C:\libevent-2.0.22-stable -DZLIB_INCLUDE_DIR=C:\zlib-1.2.8 -DZLIB_LIBRARY=C:\zlib-1.2.8\release\zlibstatic.lib -DBOOST_ROOT="%BOOST_ROOT%" -DBOOST_LIBRARYDIR="%BOOST_LIBRARYDIR%" ..
-- findstr /b /e BUILD_COMPILER:BOOL=ON CMakeCache.txt
-- findstr /b /e BUILD_CPP:BOOL=ON CMakeCache.txt
-- findstr /b /e BUILD_JAVA:BOOL=ON CMakeCache.txt
-- findstr /b /e BUILD_PYTHON:BOOL=ON CMakeCache.txt
-# - findstr /b /e BUILD_C_GLIB:BOOL=ON CMakeCache.txt
-# - findstr /b /e BUILD_HASKELL:BOOL=ON CMakeCache.txt
-- findstr /b /e BUILD_TESTING:BOOL=ON CMakeCache.txt
-# - cmake --build .
-- cmake --build . --config Release
-# TODO: Fix cpack
-# - cpack
-# TODO: Run more tests
-# CTest fails to invoke ant seemingly due to "ant.bat" v.s. "ant" (shell script) conflict.
-# Currently, everything that involves OpenSSL seems to hang forever on our Appveyor setup.
-# Also a few C++ tests hang (on Appveyor or on Windows in general).
-- ctest -C Release --timeout 600 -VV -E "(StressTestNonBlocking|PythonTestSSLSocket|python_test$|^Java)"
-# TODO make it perfect ;-r
+  - cd %APPVEYOR_BUILD_FOLDER%
+  - call build\appveyor\%PROFILE:~0,4%-appveyor-build.bat
+
+test_script:
+  - cd %APPVEYOR_BUILD_FOLDER%
+  - call build\appveyor\%PROFILE:~0,4%-appveyor-test.bat
+
+# artifact capture disabled as it might increase service cost for little gain:
+#
+# artifacts:
+#  - path: local-thrift-inst
+#    name: cmake installed content
+#    type: zip
+#
+#  - path: local-thrift-build\Testing
+#    name: ctest output
+#    type: zip