2018-05-04 04:07:32 -05:00
version : 'build #{build}'
environment :
matrix :
2019-04-07 17:15:45 -05:00
- arch : 386
libtype : shared
libfiles : libui.dll libui.lib
2018-05-15 03:51:05 -05:00
compiler : msvc2013
2018-05-04 04:07:32 -05:00
APPVEYOR_BUILD_WORKER_IMAGE : Visual Studio 2013
2019-04-07 17:15:45 -05:00
- arch : 386
libtype : static
libfiles : libui.lib
2018-05-15 03:51:05 -05:00
compiler : msvc2013
2018-05-04 04:07:32 -05:00
APPVEYOR_BUILD_WORKER_IMAGE : Visual Studio 2013
2019-04-07 17:15:45 -05:00
- arch : amd64
libtype : shared
libfiles : libui.dll libui.lib
compiler : msvc2013
APPVEYOR_BUILD_WORKER_IMAGE : Visual Studio 2013
- arch : amd64
libtype : static
libfiles : libui.lib
compiler : msvc2013
APPVEYOR_BUILD_WORKER_IMAGE : Visual Studio 2013
- arch : 386
libtype : static
libfiles : libui.lib
compiler : mingw
2018-05-04 04:07:32 -05:00
APPVEYOR_BUILD_WORKER_IMAGE : Visual Studio 2015
2019-04-07 17:15:45 -05:00
- arch : amd64
libtype : static
libfiles : libui.lib
2018-05-15 03:51:05 -05:00
compiler : mingw
2018-05-04 04:07:32 -05:00
APPVEYOR_BUILD_WORKER_IMAGE : Visual Studio 2015
2018-05-15 03:51:05 -05:00
platform :
- x64
2018-05-04 04:07:32 -05:00
2019-04-07 19:16:04 -05:00
# Note: AppVeyor tries to be "helpful" and splits cmd.exe scripts into their constitutent lines to check their error codes. There is no way to switch this off; for true multi-line scripts we have to use PowerShell. But we need to use vcvarsall.bat, so that's out of the question.
install :
2019-04-07 17:15:45 -05:00
- cmd : |
rem Set Python Version
2019-04-07 19:23:07 -05:00
set "PYTHON_ROOT=C:\python37-x64"
if %arch%==386 ( set "PYTHON_ROOT=C:\python37" )
2019-04-07 17:15:45 -05:00
set "PATH=%PYTHON_ROOT%;%PYTHON_ROOT%\Scripts;%PATH%"
rem Install Latest Meson
pip install meson
rem Install Ninja
powershell -Command "Invoke-WebRequest https://github.com/ninja-build/ninja/releases/download/v1.9.0/ninja-win.zip -OutFile C:\ninja-win.zip"
mkdir C:\ninja
powershell -Command "Expand-Archive -LiteralPath C:\ninja-win.zip -DestinationPath C:\ninja"
set "PATH=C:\ninja;%PATH%"
2019-04-07 19:16:04 -05:00
rem Parameters for the build_script phase, to reduce their noise.
set "mingwPath=C:\msys64\mingw64\bin"
set vcvarsallArch=x86
if %arch%==386 ( set "mingwPath=C:\msys64\mingw32\bin" )
if %arch%==386 ( set vcvarsallArch=amd64 )
2018-05-04 04:07:32 -05:00
build_script :
2019-04-07 17:15:45 -05:00
- cmd : |
2019-04-07 19:16:04 -05:00
if %compiler%==mingw ( set "PATH=%mingwPath%;%PATH%" )
2019-04-07 19:29:46 -05:00
if not %compiler%==mingw ( call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" %vcvarsallArch% )
2019-04-07 17:15:45 -05:00
meson setup build --buildtype=release --default-library=%libtype%
ninja -C build
2018-05-04 04:07:32 -05:00
after_build :
2019-04-07 17:15:45 -05:00
- cmd : |
2019-04-07 19:16:04 -05:00
set "version=%APPVEYOR_REPO_BRANCH%"
if %APPVEYOR_REPO_TAG%==true ( set "version=%APPVEYOR_REPO_TAG_NAME%" )
2019-04-07 17:17:10 -05:00
set "artifact=%version%-windows-%arch%-%compiler%-%libtype%"
2019-04-07 17:15:45 -05:00
pushd build\meson-out
2019-04-07 19:16:04 -05:00
rem TODO msvc only?
2019-04-07 19:35:56 -05:00
if %libtype%==static ( ren libui.a libui.lib )
2019-04-07 17:15:45 -05:00
copy ..\..\ui.h .
copy ..\..\ui_windows.h .
rem remove unnecessary files
rem TODO should we do this on Azure too?
del libui.exp
7z a "%APPVEYOR_BUILD_FOLDER%\libui-%artifact%.zip" %libfiles% ui.h ui_windows.h
2019-04-07 19:16:04 -05:00
7z a "%APPVEYOR_BUILD_FOLDER%\examples-%artifact%.zip" controlgallery.exe cpp-multithread.exe datetime.exe drawtext.exe histogram.exe tester.exe timer.exe
2019-04-07 19:43:49 -05:00
del ui.h ui_windows.h
popd /?
2019-04-07 19:44:19 -05:00
popd
2018-05-15 07:10:20 -05:00
artifacts :
- path : libui-*.zip
name : libui
- path : examples-*.zip
name : examples
deploy :
provider : GitHub
artifact : libui, examples
2018-08-10 19:11:15 -05:00
auth_token :
secure : li92W7mFAC8HbAVeZN6Ugmo5H1GzKSjr6DXlMniLcCRspKmi2Nz1nlslSa+9sLfo
2018-05-15 07:10:20 -05:00
on :
appveyor_repo_tag : true # deploy on tag push only