diff --git a/appveyor.yml b/appveyor.yml
index 540ab1a..8b791e4 100755
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -28,15 +28,16 @@
     - master
     - /^(release/)?\d+\.\d+\.\d+$/
 
-os:
-  - Visual Studio 2017
-
-matrix:
-  fast_finish: true
+# Note: We could abort all jobs on the first error, but then it
+# becomes hard to learn from the other jobs results. Therefore disabled:
+#matrix:
+#  fast_finish: true
 
 environment:
   matrix:
    - PROFILE: MSVC2017
+     PROFILE_CLASS: MSVC
+     APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
      PLATFORM: x64
      CONFIGURATION: Release
      BUILD_SHARED_LIBS: ON
@@ -47,6 +48,8 @@
      ZLIB_VERSION: 1.2.11
 
    - PROFILE: MSVC2015
+     PROFILE_CLASS: MSVC
+     APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
      PLATFORM: x86
      CONFIGURATION: Debug
      BUILD_SHARED_LIBS: OFF
@@ -55,30 +58,27 @@
      PYTHON_VERSION: 3.5
      QT_VERSION: 5.8
      ZLIB_VERSION: 1.2.8
-     APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
 
    - PROFILE: MINGW
+     PROFILE_CLASS: MINGW
+     # Currently the the latest MSYS2 is in the following image:
+     APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
      PLATFORM: x64
      CONFIGURATION: RelWithDebInfo
      DISABLED_TESTS: (StalenessCheckTest)
 
-   - PROFILE: CYGWIN
-     PLATFORM: x64
-     CONFIGURATION: RelWithDebInfo
-     DISABLED_TESTS: (ZlibTest|OpenSSLManualInitTest|TNonblockingServerTest)
+  # As of 2021.08.06, the Cygwin build is broken with a missing dll exception.
+  # See for an example https://ci.appveyor.com/project/ApacheSoftwareFoundation/thrift/builds/40263513/job/a69xt6m4o0y9x1bw?fullLog=true
+  # - PROFILE: CYGWIN
+  #   PROFILE_CLASS: CYGWIN
+  #   PLATFORM: x64
+  #   CONFIGURATION: RelWithDebInfo
+  #   DISABLED_TESTS: (ZlibTest|OpenSSLManualInitTest|TNonblockingServerTest)
 
-install:
-  - cd %APPVEYOR_BUILD_FOLDER%
-  - call build\appveyor\%PROFILE:~0,4%-appveyor-install.bat
-  - refreshenv
 
 build_script:
   - 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
+  - call build\appveyor\%PROFILE_CLASS%-appveyor-full.bat
 
 
 # artifact capture disabled as it might increase service cost for little gain:
diff --git a/build/appveyor/CYGW-appveyor-build.bat b/build/appveyor/CYGW-appveyor-build.bat
deleted file mode 100644
index 7f33287..0000000
--- a/build/appveyor/CYGW-appveyor-build.bat
+++ /dev/null
@@ -1,35 +0,0 @@
-::
-:: Licensed under the Apache License, Version 2.0 (the "License");
-:: you may not use this file except in compliance with the License.
-:: You may obtain a copy of the License at
-::
-::     http://www.apache.org/licenses/LICENSE-2.0
-::
-:: Unless required by applicable law or agreed to in writing, software
-:: distributed under the License is distributed on an "AS IS" BASIS,
-:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-:: See the License for the specific language governing permissions and
-:: limitations under the License.
-::
-
-@ECHO OFF
-SETLOCAL EnableDelayedExpansion
-
-CD build\appveyor                           || EXIT /B
-CALL cl_banner_build.bat                    || EXIT /B
-CALL cl_setenv.bat                          || EXIT /B
-
-SET CMAKEARGS=^
-  -G'%GENERATOR%' ^
-  -DCMAKE_BUILD_TYPE=%CONFIGURATION% ^
-  -DCMAKE_INSTALL_PREFIX=%INSTDIR% ^
-  -DCMAKE_CXX_FLAGS="-D_GNU_SOURCE" ^
-  -DWITH_JAVA=OFF ^
-  -DWITH_PYTHON=OFF
-
-:: -DCMAKE_CXX_EXTENSIONS=ON ^
-:: -DCMAKE_CXX_STANDARD=11 ^
-
-@ECHO ON
-%BASH% -lc "mkdir -p %BUILDDIR% && cd %BUILDDIR% && cmake.exe %SRCDIR% %CMAKEARGS% && cmake --build . --config %CONFIGURATION% --target install" || EXIT /B
-@ECHO OFF
diff --git a/build/appveyor/CYGW-appveyor-install.bat b/build/appveyor/CYGW-appveyor-install.bat
deleted file mode 100644
index 4cdc8ea..0000000
--- a/build/appveyor/CYGW-appveyor-install.bat
+++ /dev/null
@@ -1,50 +0,0 @@
-::
-:: Licensed under the Apache License, Version 2.0 (the "License");
-:: you may not use this file except in compliance with the License.
-:: You may obtain a copy of the License at
-::
-::     http://www.apache.org/licenses/LICENSE-2.0
-::
-:: Unless required by applicable law or agreed to in writing, software
-:: distributed under the License is distributed on an "AS IS" BASIS,
-:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-:: See the License for the specific language governing permissions and
-:: limitations under the License.
-::
-
-::
-:: Appveyor install script for CYGWIN
-:: Installs third party packages we need for a cmake build
-::
-
-@ECHO OFF
-SETLOCAL EnableDelayedExpansion
-
-CD build\appveyor                          || EXIT /B
-CALL cl_banner_install.bat                 || EXIT /B
-CALL cl_setenv.bat                         || EXIT /B
-CALL cl_showenv.bat                        || EXIT /B
-
-::
-:: Upgrades cygwin to the latest, if you want...
-::
-:: appveyor DownloadFile "https://cygwin.com/setup-x86_64.exe"
-:: setup-x86_64.exe --quiet-mode --wait --upgrade-also --packages="gcc-g++"
-
-::
-:: Install apt-cyg for package management
-::
-
-%BASH% -lc "wget rawgit.com/transcode-open/apt-cyg/master/apt-cyg && install apt-cyg /bin && rm -f apt-cyg" || EXIT /B
-%BASH% -lc "apt-cyg update" || EXIT /B
-%BASH% -lc "apt-cyg install bison cmake flex gcc-g++ libboost-devel libevent-devel make openssl-devel xz zlib-devel"
-
-::
-:: We need a newer version of cmake, the one cygwin provides is too old
-:: to recognize the version of boost.  Luckily there is a pre-release
-:: one available, however cygwin's own setup program has no command line
-:: option to allow access to test packages!
-::
-
-%BASH% -lc "apt-cyg remove cmake"
-%BASH% -lc "cd / && wget http://mirror.clarkson.edu/cygwin/x86_64/release/cmake/cmake-3.20.0-1.tar.xz && tar xJf cmake-3.20.0-1.tar.xz && hash -r && cmake --version"
diff --git a/build/appveyor/CYGW-appveyor-test.bat b/build/appveyor/CYGW-appveyor-test.bat
deleted file mode 100644
index b667f9b..0000000
--- a/build/appveyor/CYGW-appveyor-test.bat
+++ /dev/null
@@ -1,21 +0,0 @@
-::
-:: Licensed under the Apache License, Version 2.0 (the "License");
-:: you may not use this file except in compliance with the License.
-:: You may obtain a copy of the License at
-::
-::     http://www.apache.org/licenses/LICENSE-2.0
-::
-:: Unless required by applicable law or agreed to in writing, software
-:: distributed under the License is distributed on an "AS IS" BASIS,
-:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-:: See the License for the specific language governing permissions and
-:: limitations under the License.
-::
-
-@ECHO OFF
-SETLOCAL EnableDelayedExpansion
-CD build\appveyor              || EXIT /B
-CALL cl_banner_test.bat        || EXIT /B
-CALL cl_setenv.bat             || EXIT /B
-
-%BASH% -lc "cd %BUILDDIR% && ctest.exe -C %CONFIGURATION% --timeout 300 -VV -E '%DISABLED_TESTS%'" || EXIT /B
diff --git a/build/appveyor/CYGWIN-appveyor-full.bat b/build/appveyor/CYGWIN-appveyor-full.bat
new file mode 100644
index 0000000..7f874d9
--- /dev/null
+++ b/build/appveyor/CYGWIN-appveyor-full.bat
@@ -0,0 +1,96 @@
+::
+:: Licensed under the Apache License, Version 2.0 (the "License");
+:: you may not use this file except in compliance with the License.
+:: You may obtain a copy of the License at
+::
+::     http://www.apache.org/licenses/LICENSE-2.0
+::
+:: Unless required by applicable law or agreed to in writing, software
+:: distributed under the License is distributed on an "AS IS" BASIS,
+:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+:: See the License for the specific language governing permissions and
+:: limitations under the License.
+::
+
+::
+:: Appveyor script for CYGWIN
+::
+
+::
+:: Installs third party packages we need for a cmake build
+::
+
+@ECHO ON
+SETLOCAL EnableDelayedExpansion
+
+CD build\appveyor || EXIT /B
+
+SET APPVEYOR_SCRIPTS=%APPVEYOR_BUILD_FOLDER%\build\appveyor
+SET BUILDDIR=%APPVEYOR_BUILD_FOLDER%\..\build\%PROFILE%\%PLATFORM%
+SET INSTDIR=%APPVEYOR_BUILD_FOLDER%\..\install\%PROFILE%\%PLATFORM%
+SET SRCDIR=%APPVEYOR_BUILD_FOLDER%
+
+
+:: compiler and generator detection
+SET COMPILER=gcc
+SET GENERATOR=Unix Makefiles
+
+IF "%PLATFORM%" == "x64" (
+  SET CYGWINROOT=C:\cygwin64
+) ELSE (
+  SET CYGWINROOT=C:\cygwin
+)
+
+IF "%PLATFORM%" == "x64" (
+  SET SETUP=!CYGWINROOT!\setup-x86_64.exe
+) ELSE (
+  SET SETUP=!CYGWINROOT!\setup-x86.exe
+)
+
+SET BASH=!CYGWINROOT!\bin\bash.exe
+SET BUILDDIR=%BUILDDIR:\=/%
+SET BUILDDIR=/cygdrive/c!BUILDDIR:~2!
+SET INSTDIR=%INSTDIR:\=/%
+SET INSTDIR=/cygdrive/c!INSTDIR:~2!
+SET SRCDIR=%SRCDIR:\=/%
+SET SRCDIR=/cygdrive/c!SRCDIR:~2!
+
+
+CALL win_showenv.bat || EXIT /B
+
+::
+:: Install apt-cyg for package management because its easier to use
+:: than Cygwins setup.exe. But both are possible to use.
+::
+
+%BASH% -lc "wget https://rawgit.com/transcode-open/apt-cyg/master/apt-cyg && install apt-cyg /bin && rm -f apt-cyg" || EXIT /B
+%BASH% -lc "apt-cyg update" || EXIT /B
+%BASH% -lc "apt-cyg install unzip xz cmake make bison flex gcc-g++ libboost-devel libevent-devel openssl-devel zlib-devel" || EXIT /B
+
+
+::
+:: Configure and build our software with cmake
+::
+
+SET CMAKEARGS=^
+  -G'%GENERATOR%' ^
+  -DCMAKE_BUILD_TYPE=%CONFIGURATION% ^
+  -DCMAKE_INSTALL_PREFIX=%INSTDIR% ^
+  -DCMAKE_CXX_FLAGS="-D_GNU_SOURCE" ^
+  -DWITH_JAVA=OFF ^
+  -DWITH_PYTHON=OFF
+
+:: -DCMAKE_CXX_EXTENSIONS=ON ^
+:: -DCMAKE_CXX_STANDARD=11 ^
+
+
+%BASH% -lc "mkdir -p %BUILDDIR% && cd %BUILDDIR% && cmake.exe %SRCDIR% %CMAKEARGS% && cmake --build . --config %CONFIGURATION% && cmake --install . --config %CONFIGURATION%" || EXIT /B
+
+
+::
+:: Execute our tests
+::
+
+SET DISABLED_TESTS_COMMAND=--exclude-regex '%DISABLED_TESTS%'
+
+%BASH% -lc "cd %BUILDDIR% && ctest.exe --build-config %CONFIGURATION% --timeout 300 --extra-verbose %DISABLED_TESTS_COMMAND%" || EXIT /B
diff --git a/build/appveyor/MING-appveyor-build.bat b/build/appveyor/MING-appveyor-build.bat
deleted file mode 100644
index eec65f8..0000000
--- a/build/appveyor/MING-appveyor-build.bat
+++ /dev/null
@@ -1,34 +0,0 @@
-::
-:: Licensed under the Apache License, Version 2.0 (the "License");
-:: you may not use this file except in compliance with the License.
-:: You may obtain a copy of the License at
-::
-::     http://www.apache.org/licenses/LICENSE-2.0
-::
-:: Unless required by applicable law or agreed to in writing, software
-:: distributed under the License is distributed on an "AS IS" BASIS,
-:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-:: See the License for the specific language governing permissions and
-:: limitations under the License.
-::
-
-@ECHO OFF
-SETLOCAL EnableDelayedExpansion
-
-CD build\appveyor                           || EXIT /B
-CALL cl_banner_build.bat                    || EXIT /B
-CALL cl_setenv.bat                          || EXIT /B
-
-SET CMAKEARGS=^
-  -G'%GENERATOR%' ^
-  -DCMAKE_BUILD_TYPE=%CONFIGURATION% ^
-  -DCMAKE_INSTALL_PREFIX=%INSTDIR% ^
-  -DCMAKE_MAKE_PROGRAM=/mingw%NORM_PLATFORM%/bin/mingw32-make ^
-  -DCMAKE_C_COMPILER=/mingw%NORM_PLATFORM%/bin/gcc.exe ^
-  -DCMAKE_CXX_COMPILER=/mingw%NORM_PLATFORM%/bin/g++.exe ^
-  -DOPENSSL_ROOT_DIR=/mingw%NORM_PLATFORM% ^
-  -DWITH_PYTHON=OFF
-
-@ECHO ON
-%BASH% -lc "mkdir -p %BUILDDIR% && cd %BUILDDIR% && cmake.exe %SRCDIR% %CMAKEARGS% && cmake --build . --config %CONFIGURATION% --target install" || EXIT /B
-@ECHO OFF
diff --git a/build/appveyor/MING-appveyor-install.bat b/build/appveyor/MING-appveyor-install.bat
deleted file mode 100644
index 862cb1c..0000000
--- a/build/appveyor/MING-appveyor-install.bat
+++ /dev/null
@@ -1,59 +0,0 @@
-::
-:: Licensed under the Apache License, Version 2.0 (the "License");
-:: you may not use this file except in compliance with the License.
-:: You may obtain a copy of the License at
-::
-::     http://www.apache.org/licenses/LICENSE-2.0
-::
-:: Unless required by applicable law or agreed to in writing, software
-:: distributed under the License is distributed on an "AS IS" BASIS,
-:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-:: See the License for the specific language governing permissions and
-:: limitations under the License.
-::
-
-::
-:: Appveyor install script for MINGW on MSYS2
-:: Installs third party packages we need for a cmake build
-::
-
-@ECHO OFF
-SETLOCAL EnableDelayedExpansion
-
-CD build\appveyor                          || EXIT /B
-CALL cl_banner_install.bat                 || EXIT /B
-CALL cl_setenv.bat                         || EXIT /B
-CALL cl_showenv.bat                        || EXIT /B
-
-SET PACKAGES=^
-  --needed -S bison flex make ^
-  mingw-w64-%MINGWPLAT%-boost ^
-  mingw-w64-%MINGWPLAT%-cmake ^
-  mingw-w64-%MINGWPLAT%-libevent ^
-  mingw-w64-%MINGWPLAT%-openssl ^
-  mingw-w64-%MINGWPLAT%-toolchain ^
-  mingw-w64-%MINGWPLAT%-zlib
-
-::mingw-w64-%MINGWPLAT%-qt5 : WAY too large (1GB download!) - tested in cygwin builds anyway
-
-:: the following uninstall and system upgrade was causing issues; appveyor's is relatively new
-:: Remove old packages that no longer exist to avoid an error
-:: %BASH% -lc "pacman --noconfirm --remove libcatgets catgets || true" || EXIT /B
-
-:: Remove incompatible packages 8.2.0-3 and 7.3.0-2 (mingw packaging bugs if you ask me!)
-:: %BASH% -lc "pacman --noconfirm --remove mingw-w64-x86_64-gcc-ada mingw-w64-x86_64-gcc-objc || true" || EXIT /B
-:: %BASH% -lc "pacman --noconfirm --remove mingw-w64-x86_64-gcc-ada mingw-w64-x86_64-gcc-objc || true" || EXIT /B
-
-:: Upgrade things
-:: %BASH% -lc "pacman --noconfirm -Syu %IGNORE%"                       || EXIT /B
-:: %BASH% -lc "pacman --noconfirm -Su %IGNORE%"                        || EXIT /B
-
-:: Updata the new key
-%BASH% -lc "curl -O http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz"         || EXIT /B
-%BASH% -lc "curl -O http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz.sig"     || EXIT /B
-%BASH% -lc "pacman-key --verify msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz.sig"                           || EXIT /B
-%BASH% -lc "pacman --noconfirm -U --config <(echo) msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz"            || EXIT /B
-:: Upgrade things
-%BASH% -lc "pacman --noconfirm -Sy"                                                                       || EXIT /B
-%BASH% -lc "pacman --noconfirm -Udd https://repo.msys2.org/msys/x86_64/pacman-5.2.2-5-x86_64.pkg.tar.xz"    || EXIT /B
-%BASH% -lc "pacman --noconfirm %PACKAGES%"                                                                || EXIT /B
diff --git a/build/appveyor/MING-appveyor-test.bat b/build/appveyor/MING-appveyor-test.bat
deleted file mode 100644
index 499c1ff..0000000
--- a/build/appveyor/MING-appveyor-test.bat
+++ /dev/null
@@ -1,22 +0,0 @@
-::
-:: Licensed under the Apache License, Version 2.0 (the "License");
-:: you may not use this file except in compliance with the License.
-:: You may obtain a copy of the License at
-::
-::     http://www.apache.org/licenses/LICENSE-2.0
-::
-:: Unless required by applicable law or agreed to in writing, software
-:: distributed under the License is distributed on an "AS IS" BASIS,
-:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-:: See the License for the specific language governing permissions and
-:: limitations under the License.
-::
-
-@ECHO OFF
-SETLOCAL EnableDelayedExpansion
-
-CD build\appveyor              || EXIT /B
-CALL cl_banner_test.bat        || EXIT /B
-CALL cl_setenv.bat             || EXIT /B
-
-%BASH% -lc "cd %BUILDDIR% && ctest.exe -C %CONFIGURATION% --timeout 300 -VV -E '%DISABLED_TESTS%'" || EXIT /B
diff --git a/build/appveyor/MINGW-appveyor-full.bat b/build/appveyor/MINGW-appveyor-full.bat
new file mode 100644
index 0000000..f808c0d
--- /dev/null
+++ b/build/appveyor/MINGW-appveyor-full.bat
@@ -0,0 +1,126 @@
+::
+:: Licensed under the Apache License, Version 2.0 (the "License");
+:: you may not use this file except in compliance with the License.
+:: You may obtain a copy of the License at
+::
+::     http://www.apache.org/licenses/LICENSE-2.0
+::
+:: Unless required by applicable law or agreed to in writing, software
+:: distributed under the License is distributed on an "AS IS" BASIS,
+:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+:: See the License for the specific language governing permissions and
+:: limitations under the License.
+::
+
+::
+:: Appveyor script for MINGW on MSYS2
+::
+
+::
+:: Installs third party packages we need for a cmake build
+::
+
+@ECHO ON
+SETLOCAL EnableDelayedExpansion
+
+CD build\appveyor || EXIT /B
+
+SET APPVEYOR_SCRIPTS=%APPVEYOR_BUILD_FOLDER%\build\appveyor
+SET BUILDDIR=%APPVEYOR_BUILD_FOLDER%\..\build\%PROFILE%\%PLATFORM%
+SET INSTDIR=%APPVEYOR_BUILD_FOLDER%\..\install\%PROFILE%\%PLATFORM%
+SET SRCDIR=%APPVEYOR_BUILD_FOLDER%
+
+
+:: PLATFORM is x86 or x64
+:: NORM_PLATFORM is 32 or 64
+IF "%PLATFORM%" == "x86" (
+    SET NORM_PLATFORM=32
+) ELSE (
+    SET NORM_PLATFORM=64
+)
+
+:: PLATFORM = x86 means MINGWPLAT i686
+:: PLATFORM = x64 means MINGWPLAT x86_64
+IF "%PLATFORM%" == "x86" (
+  SET MINGWPLAT=i686
+) ELSE (
+  SET MINGWPLAT=x86_64
+)
+
+
+:: compiler and generator detection
+SET COMPILER=gcc
+SET GENERATOR=MinGW Makefiles
+
+
+SET BASH=C:\msys64\usr\bin\bash.exe
+!BASH! -lc "sed -i '/export PATH=\/mingw32\/bin/d' ~/.bash_profile && sed -i '/export PATH=\/mingw64\/bin/d' ~/.bash_profile && echo 'export PATH=/mingw%NORM_PLATFORM%/bin:$PATH' >> ~/.bash_profile" || EXIT /B
+
+SET BUILDDIR=%BUILDDIR:\=/%
+SET BUILDDIR=/c!BUILDDIR:~2!
+SET INSTDIR=%INSTDIR:\=/%
+SET INSTDIR=/c!INSTDIR:~2!
+SET SRCDIR=%SRCDIR:\=/%
+SET SRCDIR=/c!SRCDIR:~2!
+
+CALL win_showenv.bat || EXIT /B
+
+
+SET PACKAGES=^
+  base-devel ^
+  mingw-w64-x86_64-toolchain ^
+  bison ^
+  flex ^
+  make ^
+  mingw-w64-%MINGWPLAT%-boost ^
+  mingw-w64-%MINGWPLAT%-cmake ^
+  mingw-w64-%MINGWPLAT%-libevent ^
+  mingw-w64-%MINGWPLAT%-openssl ^
+  mingw-w64-%MINGWPLAT%-toolchain ^
+  mingw-w64-%MINGWPLAT%-zlib
+
+::mingw-w64-%MINGWPLAT%-qt5 : WAY too large (1GB download!) - tested in cygwin builds anyway
+
+:: Upgrade things
+%BASH% -lc "pacman --noconfirm -Syu %IGNORE%" || EXIT /B
+%BASH% -lc "pacman --noconfirm -Su %IGNORE%" || EXIT /B
+%BASH% -lc "pacman --noconfirm --needed -S %PACKAGES%" || EXIT /B
+
+
+:: These instructions are for a manual update of specific package versions.
+:: Fall back to this in case the above does not work anymore (broken upstream).
+:::: Updata the new key
+::%BASH% -lc "curl -O http://repo.msys2.org/msys/x86_64/msys2-keyring-1~20210213-2-any.pkg.tar.xz" || EXIT /B
+::%BASH% -lc "curl -O http://repo.msys2.org/msys/x86_64/msys2-keyring-1~20210213-2-any.pkg.tar.xz.sig" || EXIT /B
+::%BASH% -lc "pacman-key --verify msys2-keyring-1~20210213-2-any.pkg.tar.xz.sig" || EXIT /B
+::%BASH% -lc "pacman --noconfirm -U --config <(echo) msys2-keyring-1~20210213-2-any.pkg.tar.xz" || EXIT /B
+:::: Upgrade things
+::%BASH% -lc "pacman --noconfirm -Sy" || EXIT /B
+::%BASH% -lc "pacman --noconfirm -Udd https://repo.msys2.org/msys/x86_64/pacman-5.2.2-5-x86_64.pkg.tar.xz" || EXIT /B
+::%BASH% -lc "pacman --noconfirm --needed -S %PACKAGES%" || EXIT /B
+
+
+::
+:: Configure and build our software with cmake
+::
+
+SET CMAKEARGS=^
+  -G'%GENERATOR%' ^
+  -DCMAKE_BUILD_TYPE=%CONFIGURATION% ^
+  -DCMAKE_INSTALL_PREFIX=%INSTDIR% ^
+  -DCMAKE_MAKE_PROGRAM=/mingw%NORM_PLATFORM%/bin/mingw32-make ^
+  -DCMAKE_C_COMPILER=/mingw%NORM_PLATFORM%/bin/gcc.exe ^
+  -DCMAKE_CXX_COMPILER=/mingw%NORM_PLATFORM%/bin/g++.exe ^
+  -DOPENSSL_ROOT_DIR=/mingw%NORM_PLATFORM% ^
+  -DWITH_PYTHON=OFF
+
+%BASH% -lc "mkdir -p %BUILDDIR% && cd %BUILDDIR% && cmake.exe %SRCDIR% %CMAKEARGS% && cmake --build . --config %CONFIGURATION% && cmake --install . --config %CONFIGURATION%" || EXIT /B
+
+
+::
+:: Execute our tests
+::
+
+SET DISABLED_TESTS_COMMAND=--exclude-regex '%DISABLED_TESTS%'
+
+%BASH% -lc "cd %BUILDDIR% && ctest.exe --build-config %CONFIGURATION% --timeout 300 --extra-verbose %DISABLED_TESTS_COMMAND%" || EXIT /B
diff --git a/build/appveyor/MSVC-appveyor-build.bat b/build/appveyor/MSVC-appveyor-build.bat
deleted file mode 100644
index 3d2bbee..0000000
--- a/build/appveyor/MSVC-appveyor-build.bat
+++ /dev/null
@@ -1,59 +0,0 @@
-::
-:: Licensed under the Apache License, Version 2.0 (the "License");
-:: you may not use this file except in compliance with the License.
-:: You may obtain a copy of the License at
-::
-::     http://www.apache.org/licenses/LICENSE-2.0
-::
-:: Unless required by applicable law or agreed to in writing, software
-:: distributed under the License is distributed on an "AS IS" BASIS,
-:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-:: See the License for the specific language governing permissions and
-:: limitations under the License.
-::
-
-@ECHO OFF
-SETLOCAL EnableDelayedExpansion
-
-CD build\appveyor                           || EXIT /B
-CALL cl_banner_build.bat                    || EXIT /B
-CALL cl_setenv.bat                          || EXIT /B
-MKDIR "%BUILDDIR%"                          || EXIT /B
-CD "%BUILDDIR%"                             || EXIT /B
-
-:: When libraries cannot be found, things might have been updated
-:: so uncomment this and submit a pull request to see what's there
-:: now...
-:: DIR C:\Libraries
-:: DIR C:\Libraries\boost_1_69_0\lib*
-:: DIR C:\Libraries\boost_1_68_0\lib*
-:: DIR C:\Libraries\boost_1_67_0\lib*
-:: DIR C:\Libraries\boost_1_66_0\lib*
-:: DIR C:\Libraries\boost_1_65_0\lib*
-:: DIR C:\Libraries\boost_1_64_0\lib*
-:: DIR C:\Libraries\boost_1_63_0\lib*
-:: DIR C:\Libraries\boost_1_62_0\lib*
-:: DIR C:\Libraries\boost_1_61_0\lib*
-:: DIR C:\Libraries\boost_1_60_0\lib*
-
-@ECHO ON
-  cmake "%SRCDIR%" ^
-    -G"%GENERATOR%" ^
-	-DBISON_EXECUTABLE=C:\ProgramData\chocolatey\lib\winflexbison3\tools\win_bison.exe ^
-    -DBOOST_ROOT="%BOOST_ROOT%" ^
-    -DBOOST_LIBRARYDIR="%BOOST_LIBRARYDIR%" ^
-    -DBUILD_SHARED_LIBS="%BUILD_SHARED_LIBS%" ^
-    -DCMAKE_BUILD_TYPE="%CONFIGURATION%" ^
-    -DCMAKE_INSTALL_PREFIX="%INSTDIR%" ^
-	-DFLEX_EXECUTABLE=C:\ProgramData\chocolatey\lib\winflexbison3\tools\win_flex.exe ^
-    -DLIBEVENT_ROOT="%WIN3P%\libevent-%LIBEVENT_VERSION%-stable" ^
-    -DOPENSSL_ROOT_DIR="%OPENSSL_ROOT%" ^
-    -DOPENSSL_USE_STATIC_LIBS=OFF ^
-    -DZLIB_LIBRARY="%WIN3P%\zlib-inst\lib\zlib%ZLIB_LIB_SUFFIX%.lib" ^
-    -DZLIB_ROOT="%WIN3P%\zlib-inst" ^
-    -DWITH_PYTHON=%WITH_PYTHON%             || EXIT /B
-@ECHO OFF
-
-cmake --build . ^
-  --config "%CONFIGURATION%" ^
-  --target INSTALL                          || EXIT /B
diff --git a/build/appveyor/MSVC-appveyor-full.bat b/build/appveyor/MSVC-appveyor-full.bat
new file mode 100644
index 0000000..49a3f94
--- /dev/null
+++ b/build/appveyor/MSVC-appveyor-full.bat
@@ -0,0 +1,196 @@
+::
+:: Licensed under the Apache License, Version 2.0 (the "License");
+:: you may not use this file except in compliance with the License.
+:: You may obtain a copy of the License at
+::
+::     http://www.apache.org/licenses/LICENSE-2.0
+::
+:: Unless required by applicable law or agreed to in writing, software
+:: distributed under the License is distributed on an "AS IS" BASIS,
+:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+:: See the License for the specific language governing permissions and
+:: limitations under the License.
+::
+
+::
+:: Appveyor script for MSVC
+::
+
+::
+:: Installs (or builds) third party packages we need
+::
+
+@ECHO ON
+SETLOCAL EnableDelayedExpansion
+
+CD build\appveyor || EXIT /B
+
+SET APPVEYOR_SCRIPTS=%APPVEYOR_BUILD_FOLDER%\build\appveyor
+SET BUILDDIR=%APPVEYOR_BUILD_FOLDER%\..\build\%PROFILE%\%PLATFORM%
+SET INSTDIR=%APPVEYOR_BUILD_FOLDER%\..\install\%PROFILE%\%PLATFORM%
+SET SRCDIR=%APPVEYOR_BUILD_FOLDER%
+
+
+IF "%PROFILE%" == "MSVC2015" (
+  IF "%PLATFORM%" == "x86" (
+    CALL "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 || EXIT /B
+  ) ELSE (
+    CALL "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64 || EXIT /B
+    CALL "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86_amd64 || EXIT /B
+  )
+) ELSE IF "%PROFILE%" == "MSVC2017" (
+  IF "%PLATFORM%" == "x86" (
+    CALL "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars32.bat" || EXIT /B
+  ) ELSE (
+    CALL "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat" || EXIT /B
+  )
+) ELSE IF "%PROFILE%" == "MSVC2019" (
+  IF "%PLATFORM%" == "x86" (
+    CALL "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars32.bat" || EXIT /B
+  ) ELSE (
+    CALL "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat" || EXIT /B
+  )
+) ELSE (
+  ECHO Unsupported PROFILE=%PROFILE% or PLATFORM=%PLATFORM%
+  EXIT /B 1
+)
+
+
+:: compiler and generator detection
+IF /i "%PLATFORM%" == "x64" SET GENARCH= Win64
+IF "%PROFILE%" == "MSVC2015" (
+  SET GENERATOR=Visual Studio 14 2015!GENARCH!
+  SET COMPILER=vc140
+) ELSE IF "%PROFILE%" == "MSVC2017" (
+  SET GENERATOR=Visual Studio 15 2017!GENARCH!
+  SET COMPILER=vc141
+) ELSE IF "%PROFILE%" == "MSVC2019" (
+  SET GENERATOR=Visual Studio 16 2019!GENARCH!
+  SET COMPILER=vc142
+) ELSE (
+  ECHO [error] unable to determine the CMake generator and compiler to use from MSVC profile %PROFILE%
+  EXIT /B 1
+)
+
+:: PLATFORM is x86 or x64
+:: NORM_PLATFORM is 32 or 64
+IF "%PLATFORM%" == "x86" (
+    SET NORM_PLATFORM=32
+) ELSE (
+    SET NORM_PLATFORM=64
+)
+
+:: FindBoost needs forward slashes so cmake doesn't see something as an escaped character
+SET BOOST_ROOT=C:/Libraries/boost_%BOOST_VERSION:.=_%
+SET BOOST_LIBRARYDIR=!BOOST_ROOT!/lib%NORM_PLATFORM%-msvc-%COMPILER:~-3,2%.%COMPILER:~-1,1%
+SET OPENSSL_ROOT=C:\OpenSSL-Win%NORM_PLATFORM%
+SET WIN3P=%APPVEYOR_BUILD_FOLDER%\thirdparty
+
+IF "%PYTHON_VERSION%" == "" (
+  SET WITH_PYTHON=OFF
+) ELSE (
+  SET WITH_PYTHON=ON
+  IF /i "%PLATFORM%" == "x64" (SET PTEXT=-x64)
+  SET PATH=C:\Python%PYTHON_VERSION:.=%!PTEXT!\scripts;C:\Python%PYTHON_VERSION:.=%!PTEXT!;!PATH!
+)
+
+IF "%CONFIGURATION%" == "Debug" (SET ZLIB_LIB_SUFFIX=d)
+
+IF NOT "%QT_VERSION%" == "" (
+  IF /i "%PLATFORM%" == "x64" (SET QTEXT=_64)
+  SET PATH=C:\Qt\%QT_VERSION%\%PROFILE%!QTEXT!\bin;!PATH!
+)
+
+
+CALL win_showenv.bat || EXIT /B
+MKDIR "%WIN3P%" || EXIT /B
+
+choco feature enable -n allowGlobalConfirmation || EXIT /B
+
+:: Things to install when NOT running in appveyor:
+IF "%APPVEYOR_BUILD_ID%" == "" (
+    cup -y chocolatey || EXIT /B
+    cinst -y curl || EXIT /B
+    cinst -y 7zip || EXIT /B
+    cinst -y python3 || EXIT /B
+    cinst -y openssl.light || EXIT /B
+)
+
+cinst -y jdk8 || EXIT /B
+cinst -y winflexbison3 || EXIT /B
+
+:: zlib - not available through chocolatey
+CD "%APPVEYOR_SCRIPTS%" || EXIT /B
+call build-zlib.bat || EXIT /B
+
+:: libevent - not available through chocolatey
+CD "%APPVEYOR_SCRIPTS%" || EXIT /B
+call build-libevent.bat || EXIT /B
+
+:: python packages (correct path to pip set above)
+pip.exe ^
+    install backports.ssl_match_hostname ^
+            ipaddress ^
+            six ^
+            tornado ^
+            twisted || EXIT /B
+
+:: Adobe Flex SDK 4.6 for ActionScript
+MKDIR "C:\Adobe\Flex\SDK\4.6" || EXIT /B
+appveyor DownloadFile http://download.macromedia.com/pub/flex/sdk/flex_sdk_4.6.zip -FileName C:\Adobe\Flex\SDK\4.6\SDK.zip || EXIT /B
+CD "C:\Adobe\Flex\SDK\4.6" || EXIT /B
+7z x SDK.zip || EXIT /B
+SETX FLEX_HOME "C:\Adobe\Flex\SDK\4.6"
+
+
+::
+:: Configure and build our software with cmake
+::
+
+MKDIR "%BUILDDIR%" || EXIT /B
+CD "%BUILDDIR%" || EXIT /B
+
+:: When libraries cannot be found, things might have been updated
+:: so uncomment this and submit a pull request to see what's there
+:: now...
+:: DIR C:\Libraries
+:: DIR C:\Libraries\boost_1_69_0\lib*
+:: DIR C:\Libraries\boost_1_68_0\lib*
+:: DIR C:\Libraries\boost_1_67_0\lib*
+:: DIR C:\Libraries\boost_1_66_0\lib*
+:: DIR C:\Libraries\boost_1_65_0\lib*
+:: DIR C:\Libraries\boost_1_64_0\lib*
+:: DIR C:\Libraries\boost_1_63_0\lib*
+:: DIR C:\Libraries\boost_1_62_0\lib*
+:: DIR C:\Libraries\boost_1_61_0\lib*
+:: DIR C:\Libraries\boost_1_60_0\lib*
+
+cmake.exe "%SRCDIR%" ^
+  -G"%GENERATOR%" ^
+  -DBISON_EXECUTABLE="C:\ProgramData\chocolatey\lib\winflexbison3\tools\win_bison.exe" ^
+  -DBOOST_ROOT="%BOOST_ROOT%" ^
+  -DBOOST_LIBRARYDIR="%BOOST_LIBRARYDIR%" ^
+  -DBUILD_SHARED_LIBS="%BUILD_SHARED_LIBS%" ^
+  -DCMAKE_BUILD_TYPE="%CONFIGURATION%" ^
+  -DCMAKE_INSTALL_PREFIX="%INSTDIR%" ^
+  -DFLEX_EXECUTABLE="C:\ProgramData\chocolatey\lib\winflexbison3\tools\win_flex.exe" ^
+  -DLIBEVENT_ROOT="%WIN3P%\libevent-%LIBEVENT_VERSION%-stable" ^
+  -DOPENSSL_ROOT_DIR="%OPENSSL_ROOT%" ^
+  -DOPENSSL_USE_STATIC_LIBS=OFF ^
+  -DZLIB_LIBRARY="%WIN3P%\zlib-inst\lib\zlib%ZLIB_LIB_SUFFIX%.lib" ^
+  -DZLIB_ROOT="%WIN3P%\zlib-inst" ^
+  -DWITH_PYTHON=%WITH_PYTHON% || EXIT /B
+
+cmake.exe --build . --config "%CONFIGURATION%" || EXIT /B
+
+cmake.exe --install . --config "%CONFIGURATION%" || EXIT /B
+
+::
+:: Execute our tests
+::
+
+:: Add directories to the path to find DLLs of third party libraries so tests run properly!
+SET PATH=%BOOST_LIBRARYDIR:/=\%;%OPENSSL_ROOT%\bin;%WIN3P%\zlib-inst\bin;%PATH%
+SET DISABLED_TESTS_COMMAND=--exclude-regex '%DISABLED_TESTS%'
+
+ctest.exe --build-config %CONFIGURATION% --timeout 300 --extra-verbose %DISABLED_TESTS_COMMAND% || EXIT /B
diff --git a/build/appveyor/MSVC-appveyor-install.bat b/build/appveyor/MSVC-appveyor-install.bat
deleted file mode 100644
index a4c49fe..0000000
--- a/build/appveyor/MSVC-appveyor-install.bat
+++ /dev/null
@@ -1,64 +0,0 @@
-::
-:: Licensed under the Apache License, Version 2.0 (the "License");
-:: you may not use this file except in compliance with the License.
-:: You may obtain a copy of the License at
-::
-::     http://www.apache.org/licenses/LICENSE-2.0
-::
-:: Unless required by applicable law or agreed to in writing, software
-:: distributed under the License is distributed on an "AS IS" BASIS,
-:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-:: See the License for the specific language governing permissions and
-:: limitations under the License.
-::
-
-::
-:: Appveyor install script for MSVC
-:: Installs (or builds) third party packages we need
-::
-
-@ECHO OFF
-SETLOCAL EnableDelayedExpansion
-
-CD build\appveyor                         || EXIT /B
-CALL cl_banner_install.bat                || EXIT /B
-CALL cl_setenv.bat                        || EXIT /B
-CALL cl_showenv.bat                       || EXIT /B
-MKDIR "%WIN3P%"                           || EXIT /B
-
-choco feature enable -n allowGlobalConfirmation || EXIT /B
-
-:: Things to install when NOT running in appveyor:
-IF "%APPVEYOR_BUILD_ID%" == "" (
-    cup -y chocolatey                     || EXIT /B
-    cinst -y curl                         || EXIT /B
-    cinst -y 7zip                         || EXIT /B
-    cinst -y python3                      || EXIT /B
-    cinst -y openssl.light                || EXIT /B
-)
-
-cinst -y jdk8                             || EXIT /B
-cinst -y winflexbison3                    || EXIT /B
-
-:: zlib - not available through chocolatey
-CD "%APPVEYOR_SCRIPTS%"                   || EXIT /B
-call build-zlib.bat                       || EXIT /B
-
-:: libevent - not available through chocolatey
-CD "%APPVEYOR_SCRIPTS%"                   || EXIT /B
-call build-libevent.bat                   || EXIT /B
-
-:: python packages (correct path to pip set in cl_setenv.bat)
-pip.exe ^
-    install backports.ssl_match_hostname ^
-            ipaddress ^
-            six ^
-            tornado ^
-            twisted                       || EXIT /B
-
-:: Adobe Flex SDK 4.6 for ActionScript
-MKDIR "C:\Adobe\Flex\SDK\4.6"             || EXIT /B
-appveyor DownloadFile http://download.macromedia.com/pub/flex/sdk/flex_sdk_4.6.zip -FileName C:\Adobe\Flex\SDK\4.6\SDK.zip || EXIT /B
-CD "C:\Adobe\Flex\SDK\4.6"                || EXIT /B
-7z x SDK.zip                              || EXIT /B
-SETX FLEX_HOME "C:\Adobe\Flex\SDK\4.6"
diff --git a/build/appveyor/MSVC-appveyor-test.bat b/build/appveyor/MSVC-appveyor-test.bat
deleted file mode 100644
index 3594579..0000000
--- a/build/appveyor/MSVC-appveyor-test.bat
+++ /dev/null
@@ -1,32 +0,0 @@
-::
-:: Licensed under the Apache License, Version 2.0 (the "License");
-:: you may not use this file except in compliance with the License.
-:: You may obtain a copy of the License at
-::
-::     http://www.apache.org/licenses/LICENSE-2.0
-::
-:: Unless required by applicable law or agreed to in writing, software
-:: distributed under the License is distributed on an "AS IS" BASIS,
-:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-:: See the License for the specific language governing permissions and
-:: limitations under the License.
-::
-
-@ECHO ON
-SETLOCAL EnableDelayedExpansion
-CD build\appveyor              || EXIT /B
-CALL cl_banner_test.bat        || EXIT /B
-CALL cl_setenv.bat             || EXIT /B
-CD "%BUILDDIR%"                || EXIT /B
-
-DIR C:\libraries
-DIR C:\libraries\boost_1_59_0
-DIR C:\libraries\boost_1_60_0
-DIR C:\libraries\boost_1_62_0
-DIR C:\libraries\boost_1_63_0
-DIR C:\libraries\boost_1_64_0
-
-:: Add directories to the path to find DLLs of third party libraries so tests run properly!
-SET PATH=%BOOST_LIBRARYDIR:/=\%;%OPENSSL_ROOT%\bin;%WIN3P%\zlib-inst\bin;%PATH%
-
-ctest -C %CONFIGURATION% --timeout 300 -VV -E "(%DISABLED_TESTS%)" || EXIT /B
diff --git a/build/appveyor/MSYS-appveyor-build.bat b/build/appveyor/MSYS-appveyor-build.bat
deleted file mode 100644
index 4401729..0000000
--- a/build/appveyor/MSYS-appveyor-build.bat
+++ /dev/null
@@ -1,48 +0,0 @@
-::
-:: Licensed under the Apache License, Version 2.0 (the "License");
-:: you may not use this file except in compliance with the License.
-:: You may obtain a copy of the License at
-::
-::     http://www.apache.org/licenses/LICENSE-2.0
-::
-:: Unless required by applicable law or agreed to in writing, software
-:: distributed under the License is distributed on an "AS IS" BASIS,
-:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-:: See the License for the specific language governing permissions and
-:: limitations under the License.
-::
-
-@ECHO OFF
-SETLOCAL EnableDelayedExpansion
-
-CD build\appveyor                           || EXIT /B
-CALL cl_banner_build.bat                    || EXIT /B
-CALL cl_setenv.bat                          || EXIT /B
-
-SET BASH=C:\msys64\usr\bin\bash
-SET CMAKE=/c/msys64/mingw64/bin/cmake.exe
-
-@ECHO ON
-SET CMAKEARGS=-G\"%GENERATOR%\" ^
-  -DBoost_DEBUG=ON ^
-  -DBoost_NAMESPACE=libboost ^
-  -DBOOST_INCLUDEDIR=%BOOST_INCLUDEDIR% ^
-  -DBOOST_LIBRARYDIR=%BOOST_LIBRARYDIR% ^
-  -DCMAKE_BUILD_TYPE=%CONFIGURATION% ^
-  -DCMAKE_C_COMPILER=gcc.exe ^
-  -DCMAKE_CXX_COMPILER=g++.exe ^
-  -DCMAKE_MAKE_PROGRAM=make.exe ^
-  -DCMAKE_INSTALL_PREFIX=%INSTDIR_MSYS% ^
-  -DLIBEVENT_ROOT=%LIBEVENT_ROOT% ^
-  -DOPENSSL_LIBRARIES=%OPENSSL_LIBRARIES% ^
-  -DOPENSSL_ROOT_DIR=%OPENSSL_ROOT% ^
-  -DOPENSSL_USE_STATIC_LIBS=ON ^
-  -DWITH_BOOST_STATIC=ON ^
-  -DWITH_JAVA=OFF ^
-  -DWITH_LIBEVENT=ON ^
-  -DWITH_PYTHON=%WITH_PYTHON% ^
-  -DWITH_SHARED_LIB=OFF ^
-  -DWITH_STATIC_LIB=ON
-
-%BASH% -lc "mkdir %BUILDDIR_MSYS% && cd %BUILDDIR_MSYS% && %CMAKE% %SRCDIR_MSYS% %CMAKEARGS% && %CMAKE% --build . --config %CONFIGURATION% --target install" || EXIT /B
-@ECHO OFF
diff --git a/build/appveyor/MSYS-appveyor-full.bat b/build/appveyor/MSYS-appveyor-full.bat
new file mode 100644
index 0000000..082ffdb
--- /dev/null
+++ b/build/appveyor/MSYS-appveyor-full.bat
@@ -0,0 +1,98 @@
+::
+:: Licensed under the Apache License, Version 2.0 (the "License");
+:: you may not use this file except in compliance with the License.
+:: You may obtain a copy of the License at
+::
+::     http://www.apache.org/licenses/LICENSE-2.0
+::
+:: Unless required by applicable law or agreed to in writing, software
+:: distributed under the License is distributed on an "AS IS" BASIS,
+:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+:: See the License for the specific language governing permissions and
+:: limitations under the License.
+::
+
+::
+:: Appveyor script for MSYS
+::
+
+::
+:: Installs third party packages we need for a cmake build
+::
+
+@ECHO ON
+SETLOCAL EnableDelayedExpansion
+
+CD build\appveyor || EXIT /B
+
+SET APPVEYOR_SCRIPTS=%APPVEYOR_BUILD_FOLDER%\build\appveyor
+SET BUILDDIR=%APPVEYOR_BUILD_FOLDER%\..\build\%PROFILE%\%PLATFORM%
+SET INSTDIR=%APPVEYOR_BUILD_FOLDER%\..\install\%PROFILE%\%PLATFORM%
+SET SRCDIR=%APPVEYOR_BUILD_FOLDER%
+
+
+ECHO Unsupported PROFILE=%PROFILE% or PLATFORM=%PLATFORM%
+EXIT /B 1
+
+
+SET BASH=C:\msys64\usr\bin\bash
+SET CMAKE=/c/msys64/mingw64/bin/cmake.exe
+
+
+CALL win_showenv.bat || EXIT /B
+
+SET PACKAGES=^
+  base-devel ^
+  mingw-w64-x86_64-toolchain ^
+  bison ^
+  flex ^
+  make ^
+  mingw-w64-x86_64-cmake ^
+  mingw-w64-x86_64-libevent ^
+  mingw-w64-x86_64-openssl ^
+  mingw-w64-x86_64-zlib
+
+:: Upgrade things
+%BASH% -lc "pacman --noconfirm -Syu %IGNORE%" || EXIT /B
+%BASH% -lc "pacman --noconfirm -Su %IGNORE%" || EXIT /B
+%BASH% -lc "pacman --noconfirm --needed -S %PACKAGES%" || EXIT /B
+
+
+::
+:: Configure and build our software with cmake
+::
+
+SET CMAKEARGS=^
+  -G'%GENERATOR%' ^
+  -DBoost_DEBUG=ON ^
+  -DBoost_NAMESPACE=libboost ^
+  -DBOOST_INCLUDEDIR=%BOOST_INCLUDEDIR% ^
+  -DBOOST_LIBRARYDIR=%BOOST_LIBRARYDIR% ^
+  -DCMAKE_BUILD_TYPE=%CONFIGURATION% ^
+  -DCMAKE_C_COMPILER=gcc.exe ^
+  -DCMAKE_CXX_COMPILER=g++.exe ^
+  -DCMAKE_MAKE_PROGRAM=make.exe ^
+  -DCMAKE_INSTALL_PREFIX=%INSTDIR_MSYS% ^
+  -DLIBEVENT_ROOT=%LIBEVENT_ROOT% ^
+  -DOPENSSL_LIBRARIES=%OPENSSL_LIBRARIES% ^
+  -DOPENSSL_ROOT_DIR=%OPENSSL_ROOT% ^
+  -DOPENSSL_USE_STATIC_LIBS=ON ^
+  -DWITH_BOOST_STATIC=ON ^
+  -DWITH_JAVA=OFF ^
+  -DWITH_LIBEVENT=ON ^
+  -DWITH_PYTHON=%WITH_PYTHON% ^
+  -DWITH_SHARED_LIB=OFF ^
+  -DWITH_STATIC_LIB=ON
+
+%BASH% -lc "mkdir %BUILDDIR% && cd %BUILDDIR% && %CMAKE% %SRCDIR_MSYS% %CMAKEARGS% && %CMAKE% --build . --config %CONFIGURATION% && %CMAKE% --install . --config %CONFIGURATION%" || EXIT /B
+
+
+::
+:: Execute our tests
+::
+
+:: This test randomly fails on mingw; see Jira THRIFT-4106
+SET DISABLED_TESTS=(concurrency_test)
+SET DISABLED_TESTS_COMMAND=--exclude-regex '%DISABLED_TESTS%'
+
+%BASH% -lc "cd %BUILDDIR% && ctest.exe --build-config %CONFIGURATION% --timeout 300 --extra-verbose %DISABLED_TESTS_COMMAND%" || EXIT /B
diff --git a/build/appveyor/MSYS-appveyor-install.bat b/build/appveyor/MSYS-appveyor-install.bat
deleted file mode 100644
index a818df3..0000000
--- a/build/appveyor/MSYS-appveyor-install.bat
+++ /dev/null
@@ -1,48 +0,0 @@
-::
-:: Licensed under the Apache License, Version 2.0 (the "License");
-:: you may not use this file except in compliance with the License.
-:: You may obtain a copy of the License at
-::
-::     http://www.apache.org/licenses/LICENSE-2.0
-::
-:: Unless required by applicable law or agreed to in writing, software
-:: distributed under the License is distributed on an "AS IS" BASIS,
-:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-:: See the License for the specific language governing permissions and
-:: limitations under the License.
-::
-
-::
-:: Appveyor install script for MSYS
-:: Installs (or builds) third party packages we need
-::
-
-@ECHO OFF
-SETLOCAL EnableDelayedExpansion
-
-CD build\appveyor                          || EXIT /B
-CALL cl_banner_install.bat                 || EXIT /B
-CALL cl_setenv.bat                         || EXIT /B
-CALL cl_showenv.bat                        || EXIT /B
-
-:: We're going to keep boost at a version cmake understands
-SET BOOSTPKG=mingw-w64-x86_64-boost-1.64.0-3-any.pkg.tar.xz
-SET IGNORE=--ignore mingw-w64-x86_64-boost
-
-SET PACKAGES=^
-  --needed -S bison flex make ^
-  mingw-w64-x86_64-cmake ^
-  mingw-w64-x86_64-libevent ^
-  mingw-w64-x86_64-openssl ^
-  mingw-w64-x86_64-toolchain ^
-  mingw-w64-x86_64-zlib
-
-%BASH% -lc "pacman --noconfirm -Syu %IGNORE%" || EXIT /B
-%BASH% -lc "pacman --noconfirm -Su %IGNORE%"  || EXIT /B
-%BASH% -lc "pacman --noconfirm %PACKAGES%"    || EXIT /B
-
-:: Install a slightly older boost (1.64.0) as cmake 3.10
-:: does not have built-in dependencies for boost 1.66.0 yet
-:: -- this cuts down on build warning output --
-%BASH% -lc "wget http://repo.msys2.org/mingw/x86_64/%BOOSTPKG% && pacman --noconfirm --needed -U %BOOSTPKG% && rm %BOOSTPKG%" || EXIT /B
-
diff --git a/build/appveyor/MSYS-appveyor-test.bat b/build/appveyor/MSYS-appveyor-test.bat
deleted file mode 100644
index 0f37ec5..0000000
--- a/build/appveyor/MSYS-appveyor-test.bat
+++ /dev/null
@@ -1,26 +0,0 @@
-::
-:: Licensed under the Apache License, Version 2.0 (the "License");
-:: you may not use this file except in compliance with the License.
-:: You may obtain a copy of the License at
-::
-::     http://www.apache.org/licenses/LICENSE-2.0
-::
-:: Unless required by applicable law or agreed to in writing, software
-:: distributed under the License is distributed on an "AS IS" BASIS,
-:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-:: See the License for the specific language governing permissions and
-:: limitations under the License.
-::
-
-@ECHO OFF
-SETLOCAL EnableDelayedExpansion
-
-CD build\appveyor              || EXIT /B
-CALL cl_banner_test.bat        || EXIT /B
-CALL cl_setenv.bat             || EXIT /B
-CD "%BUILDDIR%"                || EXIT /B
-
-:: randomly fails on mingw; see Jira THRIFT-4106
-SET DISABLED_TESTS=concurrency_test
-
-%BASH% -lc "cd %BUILDDIR_MSYS% && ctest.exe -C %CONFIGURATION% --timeout 300 -VV -E '(%DISABLED_TESTS%)'" || EXIT /B
diff --git a/build/appveyor/README.md b/build/appveyor/README.md
index 1a2aa30..a3d3071 100644
--- a/build/appveyor/README.md
+++ b/build/appveyor/README.md
@@ -12,23 +12,9 @@
 limitations under the License.
 -->
 
-# Appveyor Build
+# AppVeyor Build
 
-Appveyor is capable of building MSVC 2010 through 2015 as well as
-having the latest MSYS2/MinGW 64-bit environment.  It has many versions
-of boost and python installed as well.  See what appveyor has
+AppVeyor is capable of building MSVC as well as MSYS2, MinGW and Cygwin builds targeting the MS Windows platform. It has many versions of boost and python installed as well. See what appveyor has
 [installed on build workers](https://www.appveyor.com/docs/installed-software/).
 
-We run a matrix build on Appveyor and build the following combinations:
-
-* MinGW x64 (gcc 6.3.0)
-* MSVC 2010 x86, an older boost, an older python
-* MSVC 2015 x86/x64, the latest boost, the latest python
-* MSYS2 x64 (gcc 6.3.0) - this is a work in progress
-
-The Appveyor script takes the first four letters from the PROFILE specified in
-the environment stanza and runs these scripts in order:
-
-????-appveyor-install.bat will install third party libraries and set up the environment
-????-appveyor-build.bat will build with cmake
-????-appveyor-test.bat will run ctest
+We run a matrix build on AppVeyor. See appveyor.yml for more details.
diff --git a/build/appveyor/build-libevent.bat b/build/appveyor/build-libevent.bat
index 64b635b..939daf5 100644
--- a/build/appveyor/build-libevent.bat
+++ b/build/appveyor/build-libevent.bat
@@ -18,20 +18,20 @@
 SET URL=https://github.com/libevent/libevent/releases/download/release-%LIBEVENT_VERSION%-stable/%URLFILE%
 
 :: Download - support running a local build or a build in appveyor
-CD "%WIN3P%"                                     || EXIT /B
+CD "%WIN3P%" || EXIT /B
 IF "%APPVEYOR_BUILD_ID%" == "" (
     curl -L -f -o "%URLFILE%" "%URL%"
 ) ELSE (
     appveyor DownloadFile "%URL%"
 )
-7z x "%URLFILE%" -so | 7z x -si -ttar > nul      || EXIT /B
-CD "libevent-%LIBEVENT_VERSION%-stable"          || EXIT /B
-nmake -f Makefile.nmake static_libs              || EXIT /B
+7z x "%URLFILE%" -so | 7z x -si -ttar > nul || EXIT /B
+CD "libevent-%LIBEVENT_VERSION%-stable" || EXIT /B
+nmake -f Makefile.nmake static_libs || EXIT /B
 
 :: in libevent 2.0 there is no nmake subdirectory in WIN32-Code, but in 2.1 there is
-mkdir lib                                        || EXIT /B
-move *.lib lib\                                  || EXIT /B
+mkdir lib || EXIT /B
+move *.lib lib\ || EXIT /B
 move WIN32-Code\event2\* include\event2\         || move WIN32-Code\nmake\event2\* include\event2\ || EXIT /B
-move *.h include\                                || EXIT /B
+move *.h include\ || EXIT /B
 
 ENDLOCAL
diff --git a/build/appveyor/build-zlib.bat b/build/appveyor/build-zlib.bat
index 9195726..367ef98 100644
--- a/build/appveyor/build-zlib.bat
+++ b/build/appveyor/build-zlib.bat
@@ -25,7 +25,7 @@
 SET FURL=http://zlib.net/fossils/%URLFILE%
 
 :: Download - support running a local build or a build in appveyor
-CD "%WIN3P%"                                                     || EXIT /B
+CD "%WIN3P%" || EXIT /B
 IF "%APPVEYOR_BUILD_ID%" == "" (
     curl -L -f -o "%URLFILE%" "%URL%"
     IF ERRORLEVEL 1 (
@@ -34,23 +34,23 @@
 ) ELSE (
     appveyor DownloadFile "%URL%"
     IF ERRORLEVEL 1 (
-        appveyor DownloadFile "%FURL%"                           || EXIT /B
+        appveyor DownloadFile "%FURL%" || EXIT /B
     )
 )
-7z x "%URLFILE%" -so | 7z x -si -ttar > nul                      || EXIT /B
+7z x "%URLFILE%" -so | 7z x -si -ttar > nul || EXIT /B
 
 :: Generate
-MKDIR "%BUILDDIR%"                                               || EXIT /B
-CD "%BUILDDIR%"                                                  || EXIT /B
+MKDIR "%BUILDDIR%" || EXIT /B
+CD "%BUILDDIR%" || EXIT /B
 cmake "%SRCDIR%" ^
       -G"NMake Makefiles" ^
       -DCMAKE_INSTALL_PREFIX="%INSTDIR%" ^
-      -DCMAKE_BUILD_TYPE="%CONFIGURATION%"                       || EXIT /B
+      -DCMAKE_BUILD_TYPE="%CONFIGURATION%" || EXIT /B
 
 :: Build
-nmake /fMakefile install                                         || EXIT /B
+nmake /fMakefile install || EXIT /B
 IF "%CONFIGURATION%" == "Debug" (
-    COPY "%BUILDDIR%\zlibd.pdb" "%INSTDIR%\bin\"                 || EXIT /B
+    COPY "%BUILDDIR%\zlibd.pdb" "%INSTDIR%\bin\" || EXIT /B
 )
 
 ENDLOCAL
diff --git a/build/appveyor/cl_banner_apache_thrift.bat b/build/appveyor/cl_banner_apache_thrift.bat
deleted file mode 100644
index 78f2a2a..0000000
--- a/build/appveyor/cl_banner_apache_thrift.bat
+++ /dev/null
@@ -1,24 +0,0 @@
-::
-:: Licensed under the Apache License, Version 2.0 (the "License");
-:: you may not use this file except in compliance with the License.
-:: You may obtain a copy of the License at
-::
-::     http://www.apache.org/licenses/LICENSE-2.0
-::
-:: Unless required by applicable law or agreed to in writing, software
-:: distributed under the License is distributed on an "AS IS" BASIS,
-:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-:: See the License for the specific language governing permissions and
-:: limitations under the License.
-::
-
-:: A visual indicator in a large log helps you locate things when scanning
-:: http://www.patorjk.com/software/taag/#p=display&f=Small%20Slant&t=Apache%20Thrift
-
-ECHO/
-ECHO    ___                 __         ________       _ _____
-ECHO   / _ | ___  ___ _____/ /  ___   /_  __/ /  ____(_) _/ /_
-ECHO  / __ |/ _ \/ _ `/ __/ _ \/ -_)   / / / _ \/ __/ / _/ __/
-ECHO /_/ |_/ .__/\_,_/\__/_//_/\__/   /_/ /_//_/_/ /_/_/ \__/
-ECHO      /_/
-ECHO/
diff --git a/build/appveyor/cl_banner_build.bat b/build/appveyor/cl_banner_build.bat
deleted file mode 100644
index 60272f3..0000000
--- a/build/appveyor/cl_banner_build.bat
+++ /dev/null
@@ -1,23 +0,0 @@
-::
-:: Licensed under the Apache License, Version 2.0 (the "License");
-:: you may not use this file except in compliance with the License.
-:: You may obtain a copy of the License at
-::
-::     http://www.apache.org/licenses/LICENSE-2.0
-::
-:: Unless required by applicable law or agreed to in writing, software
-:: distributed under the License is distributed on an "AS IS" BASIS,
-:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-:: See the License for the specific language governing permissions and
-:: limitations under the License.
-::
-
-:: A visual indicator in a large log helps you locate things when scanning
-:: http://www.patorjk.com/software/taag/#p=display&f=Small%20Slant&t=Build
-
-ECHO/
-ECHO    ___       _ __   __
-ECHO   / _ )__ __(_) /__/ /
-ECHO  / _  / // / / / _  /     @@@ BUILD
-ECHO /____/\_,_/_/_/\_,_/
-ECHO/
diff --git a/build/appveyor/cl_banner_install.bat b/build/appveyor/cl_banner_install.bat
deleted file mode 100644
index fde3da2..0000000
--- a/build/appveyor/cl_banner_install.bat
+++ /dev/null
@@ -1,23 +0,0 @@
-::
-:: Licensed under the Apache License, Version 2.0 (the "License");
-:: you may not use this file except in compliance with the License.
-:: You may obtain a copy of the License at
-::
-::     http://www.apache.org/licenses/LICENSE-2.0
-::
-:: Unless required by applicable law or agreed to in writing, software
-:: distributed under the License is distributed on an "AS IS" BASIS,
-:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-:: See the License for the specific language governing permissions and
-:: limitations under the License.
-::
-
-:: A visual indicator in a large log helps you locate things when scanning
-:: http://www.patorjk.com/software/taag/#p=display&f=Small%20Slant&t=Install
-
-ECHO/
-ECHO    ____         __       ____
-ECHO   /  _/__  ___ / /____ _/ / /
-ECHO  _/ // _ \(_-^</ __/ _ \/ / /     @@@ INSTALL
-ECHO /___/_//_/___/\__/\_,_/_/_/
-ECHO/
diff --git a/build/appveyor/cl_banner_test.bat b/build/appveyor/cl_banner_test.bat
deleted file mode 100644
index 44e2d10..0000000
--- a/build/appveyor/cl_banner_test.bat
+++ /dev/null
@@ -1,23 +0,0 @@
-::
-:: Licensed under the Apache License, Version 2.0 (the "License");
-:: you may not use this file except in compliance with the License.
-:: You may obtain a copy of the License at
-::
-::     http://www.apache.org/licenses/LICENSE-2.0
-::
-:: Unless required by applicable law or agreed to in writing, software
-:: distributed under the License is distributed on an "AS IS" BASIS,
-:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-:: See the License for the specific language governing permissions and
-:: limitations under the License.
-::
-
-:: A visual indicator in a large log helps you locate things when scanning
-:: http://www.patorjk.com/software/taag/#p=display&f=Small%20Slant&t=Test
-
-ECHO/
-ECHO  ______        __
-ECHO /_  __/__ ___ / /_
-ECHO  / / / -_^|_-^</ __/     @@@ TEST
-ECHO /_/  \__/___/\__/
-ECHO/
diff --git a/build/appveyor/cl_setcompiler.bat b/build/appveyor/cl_setcompiler.bat
deleted file mode 100644
index 733ffc5..0000000
--- a/build/appveyor/cl_setcompiler.bat
+++ /dev/null
@@ -1,63 +0,0 @@
-::
-:: Licensed under the Apache License, Version 2.0 (the "License");
-:: you may not use this file except in compliance with the License.
-:: You may obtain a copy of the License at
-::
-::     http://www.apache.org/licenses/LICENSE-2.0
-::
-:: Unless required by applicable law or agreed to in writing, software
-:: distributed under the License is distributed on an "AS IS" BASIS,
-:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-:: See the License for the specific language governing permissions and
-:: limitations under the License.
-::
-
-::
-:: Detect the compiler edition we're building in.
-:: Set the COMPILER environment variable to one of:
-::   gcc   = MinGW / MSYS2 and gcc toolchain
-::   vc100 = Visual Studio 2010
-::   vc110 = Visual Studio 2012
-::   vc120 = Visual Studio 2013
-::   vc140 = Visual Studio 2015
-::   vc141 = Visual Studio 2017
-::
-:: Honors any existing COMPILER environment variable
-::   setting instead of overwriting it, to allow it
-::   to be forced if needed.
-::
-:: Sets ERRORLEVEL to 0 if COMPILER can be determined,
-::                 to 1 if it cannot.
-::
-
-IF DEFINED COMPILER (
-  ECHO [warn ] using existing environment variable COMPILER
-  EXIT /B 0
-)
-
-IF NOT "%PROFILE:~0,4%" == "MSVC" (
-  SET COMPILER=gcc
-) ELSE (
-  CALL :CHECK 16
-  IF !ERRORLEVEL! == 0 (SET COMPILER=vc100)
-  CALL :CHECK 17
-  IF !ERRORLEVEL! == 0 (SET COMPILER=vc110)
-  CALL :CHECK 18
-  IF !ERRORLEVEL! == 0 (SET COMPILER=vc120)
-  CALL :CHECK 19.0
-  IF !ERRORLEVEL! == 0 (SET COMPILER=vc140)
-  CALL :CHECK 19.1
-  IF !ERRORLEVEL! == 0 (SET COMPILER=vc141)
-)
-
-IF NOT DEFINED COMPILER (
-  ECHO [error] unable to determine the compiler edition
-  EXIT /B 1
-)
-
-ECHO [info ] detected compiler edition    %COMPILER%
-EXIT /B 0
-
-:CHECK
-cl /? 2>&1 | findstr /C:"Version %1%" > nul
-EXIT /B
diff --git a/build/appveyor/cl_setenv.bat b/build/appveyor/cl_setenv.bat
deleted file mode 100644
index 98931a6..0000000
--- a/build/appveyor/cl_setenv.bat
+++ /dev/null
@@ -1,122 +0,0 @@
-::
-:: Licensed under the Apache License, Version 2.0 (the "License");
-:: you may not use this file except in compliance with the License.
-:: You may obtain a copy of the License at
-::
-::     http://www.apache.org/licenses/LICENSE-2.0
-::
-:: Unless required by applicable law or agreed to in writing, software
-:: distributed under the License is distributed on an "AS IS" BASIS,
-:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-:: See the License for the specific language governing permissions and
-:: limitations under the License.
-::
-
-@ECHO OFF
-
-IF "%PROFILE%" == "MSVC2012" (
-  CALL "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat" %PLATFORM%
-) ELSE IF "%PROFILE%" == "MSVC2013" (
-  CALL "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" %PLATFORM%
-) ELSE IF "%PROFILE%" == "MSVC2015" (
-  CALL "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" %PLATFORM%
-) ELSE IF "%PROFILE%" == "MSVC2017" (
-  CALL :SETUPNEWERMSVC    || EXIT /B
-) ELSE IF "%PROFILE%" == "MINGW" (
-  REM Supported, nothing special to do here.
-) ELSE IF "%PROFILE%" == "CYGWIN" (
-  REM Supported, nothing special to do here.
-) ELSE (
-  ECHO Unsupported PROFILE=%PROFILE% or PLATFORM=%PLATFORM%
-  EXIT /B 1
-)
-
-CALL cl_setcompiler.bat   || EXIT /B
-CALL cl_setgenerator.bat  || EXIT /B
-
-SET APPVEYOR_SCRIPTS=%APPVEYOR_BUILD_FOLDER%\build\appveyor
-SET BUILDDIR=%APPVEYOR_BUILD_FOLDER%\..\build\%PROFILE%\%PLATFORM%
-SET INSTDIR=%APPVEYOR_BUILD_FOLDER%\..\build\%PROFILE%\%PLATFORM%
-SET SRCDIR=%APPVEYOR_BUILD_FOLDER%
-
-:: PLATFORM is x64 or x86
-:: NORM_PLATFORM is 64 or 32
-SET NORM_PLATFORM=%PLATFORM:~-2,2%
-IF "%NORM_PLATFORM%" == "86" (SET NORM_PLATFORM=32)
-
-IF "%PROFILE:~0,4%" == "MSVC" (
-
-  :: FindBoost needs forward slashes so cmake doesn't see something as an escaped character
-  SET BOOST_ROOT=C:/Libraries/boost_%BOOST_VERSION:.=_%
-  SET BOOST_LIBRARYDIR=!BOOST_ROOT!/lib%NORM_PLATFORM%-msvc-%COMPILER:~-3,2%.%COMPILER:~-1,1%
-  SET OPENSSL_ROOT=C:\OpenSSL-Win%NORM_PLATFORM%
-  SET WIN3P=%APPVEYOR_BUILD_FOLDER%\thirdparty
-
-  IF "%PYTHON_VERSION%" == "" (
-    SET WITH_PYTHON=OFF
-  ) ELSE (
-    SET WITH_PYTHON=ON
-    IF /i "%PLATFORM%" == "x64" SET PTEXT=-x64
-    SET PATH=C:\Python%PYTHON_VERSION:.=%!PTEXT!\scripts;C:\Python%PYTHON_VERSION:.=%!PTEXT!;!PATH!
-  )
-  IF "%CONFIGURATION%" == "Debug" (SET ZLIB_LIB_SUFFIX=d)
-
-  IF NOT "%QT_VERSION%" == "" (
-    IF /i "%PLATFORM%" == "x64" SET QTEXT=_64
-    SET PATH=C:\Qt\%QT_VERSION%\%PROFILE%!QTEXT!\bin;!PATH!
-  )
-
-) ELSE IF "%PROFILE:~0,4%" == "MING" (
-
-  :: PLATFORM = x86 means MINGWPLAT i686
-  :: PLATFORM = x64 means MINGWPLAT x86_64
-  SET MINGWPLAT=x86_64
-  IF "%PLATFORM%" == "x86" (SET MINGWPLAT=i686)
-
-  SET BASH=C:\msys64\usr\bin\bash.exe
-  !BASH! -lc "sed -i '/export PATH=\/mingw32\/bin/d' ~/.bash_profile && sed -i '/export PATH=\/mingw64\/bin/d' ~/.bash_profile && echo 'export PATH=/mingw%NORM_PLATFORM%/bin:$PATH' >> ~/.bash_profile" || EXIT /B
-
-  SET BUILDDIR=%BUILDDIR:\=/%
-  SET BUILDDIR=/c!BUILDDIR:~2!
-  SET INSTDIR=%INSTDIR:\=/%
-  SET INSTDIR=/c!INSTDIR:~2!
-  SET SRCDIR=%SRCDIR:\=/%
-  SET SRCDIR=/c!SRCDIR:~2!
-
-) ELSE IF "%PROFILE:~0,4%" == "CYGW" (
-
-  SET CYGWINROOT=C:\cygwin
-  IF "%PLATFORM%" == "x64" (SET CYGWINROOT=!CYGWINROOT!64)
-
-  SET BASH=!CYGWINROOT!\bin\bash.exe
-  SET SETUP=!CYGWINROOT!\setup-x86
-  IF "%PLATFORM%" == "x64" (SET SETUP=!SETUP!_64)
-  SET SETUP=!SETUP!.exe
-
-  SET BUILDDIR=%BUILDDIR:\=/%
-  SET BUILDDIR=/cygdrive/c!BUILDDIR:~2!
-  SET INSTDIR=%INSTDIR:\=/%
-  SET INSTDIR_CYG=/cygdrive/c!INSTDIR:~2!
-  SET SRCDIR=%SRCDIR:\=/%
-  SET SRCDIR=/cygdrive/c!SRCDIR:~2!
-
-)
-
-GOTO :EOF
-
-:SETUPNEWERMSVC
-  :: If VsDevCmd.bat has already executed, as is the case in the
-  :: msvc2017 docker container, skip this...
-  IF NOT DEFINED VSCMD_VER (
-    FOR /F "USEBACKQ TOKENS=*" %%i IN (`call "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -version "[15.0,16.0)" -property installationPath`) DO (
-      IF "%MSVCROOT%" == "" (SET MSVCROOT=%%i)
-    )
-    SET MSVCPLAT=x86
-    IF "%PLATFORM%" == "x64" (SET MSVCPLAT=amd64)
-
-    SET CURRENTDIR=%CD%
-    CALL "!MSVCROOT!\Common7\Tools\VsDevCmd.bat" -arch=!MSVCPLAT! || EXIT /B
-    CD %CURRENTDIR%
-    EXIT /B
-  )
-:EOF
diff --git a/build/appveyor/cl_setgenerator.bat b/build/appveyor/cl_setgenerator.bat
deleted file mode 100644
index 5eb6ff3..0000000
--- a/build/appveyor/cl_setgenerator.bat
+++ /dev/null
@@ -1,79 +0,0 @@
-::
-:: Licensed under the Apache License, Version 2.0 (the "License");
-:: you may not use this file except in compliance with the License.
-:: You may obtain a copy of the License at
-::
-::     http://www.apache.org/licenses/LICENSE-2.0
-::
-:: Unless required by applicable law or agreed to in writing, software
-:: distributed under the License is distributed on an "AS IS" BASIS,
-:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-:: See the License for the specific language governing permissions and
-:: limitations under the License.
-::
-
-::
-:: Detect the compiler edition we're building in and then
-:: set the GENERATOR environment variable to one of:
-::
-::  Visual Studio 15 2017 [arch] = Generates Visual Studio 2017 project files.
-::                                 Optional [arch] can be "Win64" or "ARM".
-::  Visual Studio 14 2015 [arch] = Generates Visual Studio 2015 project files.
-::                                 Optional [arch] can be "Win64" or "ARM".
-::  Visual Studio 12 2013 [arch] = Generates Visual Studio 2013 project files.
-::                                 Optional [arch] can be "Win64" or "ARM".
-::  Visual Studio 11 2012 [arch] = Generates Visual Studio 2012 project files.
-::                                 Optional [arch] can be "Win64" or "ARM".
-::  Visual Studio 10 2010 [arch] = Generates Visual Studio 2010 project files.
-::                                 Optional [arch] can be "Win64" or "IA64".
-::  MinGW Makefiles              = Generates makefiles for MinGW
-::  MSYS Makefiles               = Generates makefiles for MSYS
-::  Unix Makefiles               = Generates makefiles for CYGWIN
-::
-:: Honors any existing GENERATOR environment variable
-::   setting instead of overwriting it, to allow it
-::   to be forced if needed.
-::
-:: Sets ERRORLEVEL to 0 if GENERATOR can be determined,
-::                 to 1 if it cannot.
-::
-
-IF DEFINED GENERATOR (
-  ECHO [warn ] using existing environment variable GENERATOR
-  EXIT /B 0
-)
-
-
-IF "%PROFILE:~0,4%" == "MING" (
-  SET GENERATOR=MinGW Makefiles
-
-) ELSE IF "%PROFILE:~0,4%" == "CYGW" (
-  SET GENERATOR=Unix Makefiles
-
-) ELSE IF "%PROFILE:~0,4%" == "MSYS" (
-  SET GENERATOR=MSYS Makefiles
-) ELSE (
-  IF /i "%PLATFORM%" == "x64" SET GENARCH= Win64
-  CALL :CHECK 16
-  IF !ERRORLEVEL! == 0 SET GENERATOR=Visual Studio 10 2010!GENARCH!
-  CALL :CHECK 17
-  IF !ERRORLEVEL! == 0 SET GENERATOR=Visual Studio 11 2012!GENARCH!
-  CALL :CHECK 18
-  IF !ERRORLEVEL! == 0 SET GENERATOR=Visual Studio 12 2013!GENARCH!
-  CALL :CHECK 19.0
-  IF !ERRORLEVEL! == 0 SET GENERATOR=Visual Studio 14 2015!GENARCH!
-  CALL :CHECK 19.1
-  IF !ERRORLEVEL! == 0 SET GENERATOR=Visual Studio 15 2017!GENARCH!
-)
-
-IF NOT DEFINED GENERATOR (
-  ECHO [error] unable to determine the CMake generator to use
-  EXIT /B 1
-)
-
-ECHO [info ] using CMake generator        %GENERATOR%
-EXIT /B 0
-
-:CHECK
-cl /? 2>&1 | findstr /C:"Version %1%" > nul
-EXIT /B
diff --git a/build/appveyor/simulate-appveyor.bat b/build/appveyor/simulate-appveyor.bat
index 8674f40..351c3ee 100644
--- a/build/appveyor/simulate-appveyor.bat
+++ b/build/appveyor/simulate-appveyor.bat
@@ -19,7 +19,6 @@
 ::   simulate-appveyor.bat [Debug|Release] [x86|x64] [CYGWIN|MINGW|MSVC201?]
 ::
 
-@ECHO OFF
 SETLOCAL EnableDelayedExpansion
 
 SET APPVEYOR_BUILD_FOLDER=%~dp0..\..
@@ -28,8 +27,4 @@
 SET PROFILE=%3
 
 CD %APPVEYOR_BUILD_FOLDER%
-CALL build\appveyor\%PROFILE:~0,4%-appveyor-install.bat || EXIT /B
-CD %APPVEYOR_BUILD_FOLDER%
-CALL build\appveyor\%PROFILE:~0,4%-appveyor-build.bat   || EXIT /B
-CD %APPVEYOR_BUILD_FOLDER%
-CALL build\appveyor\%PROFILE:~0,4%-appveyor-test.bat
+CALL build\appveyor\%PROFILE_CLASS%-appveyor-full.bat || EXIT /B
diff --git a/build/appveyor/cl_showenv.bat b/build/appveyor/win_showenv.bat
similarity index 97%
rename from build/appveyor/cl_showenv.bat
rename to build/appveyor/win_showenv.bat
index a70a490..51bf2c0 100644
--- a/build/appveyor/cl_showenv.bat
+++ b/build/appveyor/win_showenv.bat
@@ -14,7 +14,7 @@
 
 ECHO/
 ECHO ===============================================================================
-IF "%PROFILE:~0,4%" == "MSVC" (
+IF "%PROFILE_CLASS%" == "MSVC" (
 ECHO Versions
 ECHO -------------------------------------------------------------------------------
 ECHO boost                 = %BOOST_VERSION%
@@ -49,7 +49,7 @@
 ECHO WIN3P                 = %WIN3P%
 ECHO WITH_PYTHON           = %WITH_PYTHON%
 ECHO ZLIB_STATIC_SUFFIX    = %ZLIB_STATIC_SUFFIX%
-IF NOT "%PROFILE:~0,4%" == "MSVC" (
+IF NOT "%PROFILE_CLASS%" == "MSVC" (
   ECHO/
   ECHO UNIXy PATH
   ECHO -------------------------------------------------------------------------------
diff --git a/build/docker/msvc2017/build-compiler.bat b/build/docker/msvc2017/build-compiler.bat
index 5534428..a7ed479 100644
--- a/build/docker/msvc2017/build-compiler.bat
+++ b/build/docker/msvc2017/build-compiler.bat
@@ -41,4 +41,4 @@
 cmake --build . --target check || EXIT /B
 
 :: Install
-cmake --build . --target install
\ No newline at end of file
+cmake --install .
\ No newline at end of file
diff --git a/build/docker/msvc2017/build.bat b/build/docker/msvc2017/build.bat
index 018805b..bdf1512 100644
--- a/build/docker/msvc2017/build.bat
+++ b/build/docker/msvc2017/build.bat
@@ -42,4 +42,4 @@
 cmake --build . --target check || EXIT /B
 
 :: Install
-cmake --build . --target install
+cmake --install .
