44 lines
1.6 KiB
Python
44 lines
1.6 KiB
Python
#!/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)
|