summaryrefslogtreecommitdiffstats
path: root/src/fmt/support/appveyor-build.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/fmt/support/appveyor-build.py')
-rw-r--r--src/fmt/support/appveyor-build.py43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/fmt/support/appveyor-build.py b/src/fmt/support/appveyor-build.py
new file mode 100644
index 000000000..654461032
--- /dev/null
+++ b/src/fmt/support/appveyor-build.py
@@ -0,0 +1,43 @@
+#!/usr/bin/env python
+# Build the project on AppVeyor.
+
+import os
+from subprocess import check_call
+
+build = os.environ['BUILD']
+config = os.environ['CONFIGURATION']
+platform = os.environ['PLATFORM']
+path = os.environ['PATH']
+image = os.environ['APPVEYOR_BUILD_WORKER_IMAGE']
+jobid = os.environ['APPVEYOR_JOB_ID']
+cmake_command = ['cmake', '-DFMT_PEDANTIC=ON', '-DCMAKE_BUILD_TYPE=' + config, '..']
+if build == 'mingw':
+ cmake_command.append('-GMinGW Makefiles')
+ build_command = ['mingw32-make', '-j4']
+ test_command = ['mingw32-make', 'test']
+ # Remove the path to Git bin directory from $PATH because it breaks
+ # MinGW config.
+ path = path.replace(r'C:\Program Files (x86)\Git\bin', '')
+ os.environ['PATH'] = r'C:\MinGW\bin;' + path
+else:
+ # Add MSBuild 14.0 to PATH as described in
+ # http://help.appveyor.com/discussions/problems/2229-v140-not-found-on-vs2105rc.
+ os.environ['PATH'] = r'C:\Program Files (x86)\MSBuild\15.0\Bin;' + path
+ if image == 'Visual Studio 2019':
+ generator = 'Visual Studio 16 2019'
+ if platform == 'x64':
+ cmake_command.extend(['-A', 'x64'])
+ else:
+ if image == 'Visual Studio 2015':
+ generator = 'Visual Studio 14 2015'
+ elif image == 'Visual Studio 2017':
+ generator = 'Visual Studio 15 2017'
+ if platform == 'x64':
+ generator += ' Win64'
+ cmake_command.append('-G' + generator)
+ build_command = ['cmake', '--build', '.', '--config', config, '--', '/m:4']
+ test_command = ['ctest', '-C', config]
+
+check_call(cmake_command)
+check_call(build_command)
+check_call(test_command)