forked from Interrupt/systemshock
-
Notifications
You must be signed in to change notification settings - Fork 0
/
appveyor.yml
94 lines (79 loc) · 2.96 KB
/
appveyor.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# Shockolate AppVeyor configuration
# YAML format reference: https://www.appveyor.com/docs/appveyor-yml/
# This determines the disk image AppVeyor uses while building
# Despite its name, this image actually contains all sorts of non-VC goodies
# See https://www.appveyor.com/docs/build-environment/ for all the details
image: Visual Studio 2015
# Tell build_windows.sh that we're building for AppVeyor
environment:
APPVEYOR: TRUE
platform:
- x64
- x86
# Avoid rebuilding external dependencies (ie. SDL and SDL_mixer)
# Uncache build_ext if external deps change
cache:
- res/music.sf2
- build_ext
# Set up environment variable values for 32 and 64 bit builds
for:
-
matrix:
only:
- platform: x86
before_build:
- set BUILD_SCRIPT=build_win32.sh
- set ARTIFACT=systemshock-x86.zip
- set MINGW_PATH=C:\mingw-w64\i686-6.3.0-posix-dwarf-rt_v5-rev1\mingw32\bin\
- copy CMakeLists.32bit.txt CMakeLists.txt
-
matrix:
only:
- platform: x64
before_build:
- set BUILD_SCRIPT=build_win64.sh
- set ARTIFACT=systemshock-x64.zip
- set MINGW_PATH=C:\mingw-w64\x86_64-7.3.0-posix-seh-rt_v5-rev0\mingw64\bin\
# Actual build script..
# Step 1: Git has to reside in a path without spaces because the SDL build script is weird like that.
# So we create a symlink to the real Git, remove it from PATH and add our own.
# Step 2: We need to use our own make.exe to build stuff, so we add that
# Step 3: Do the actual building
build_script:
- mklink /D c:\git "C:\Program Files\Git"
- set PATH=%PATH:C:\Program Files (x86)\Git\bin;=%
- set PATH=c:\git\usr\bin;%PATH%;%MINGW_PATH%
- copy windows\make.exe \git\usr\bin
- set CMAKE_MAKE_PROGRAM=c:\git\usr\bin\make.exe
- sh %BUILD_SCRIPT%
- build.bat
# For now, we don't have any automatic tests to run
test: off
# Once building is done, we gather all the necessary DLL files and build our ZIP file.
after_build:
- copy %MINGW_PATH%\libgcc*.dll .
- copy %MINGW_PATH%\libstd*.dll .
- copy %MINGW_PATH%\libwinpthread-1.dll .
- copy build_ext\built_sdl\bin\SDL*.dll .
- copy build_ext\built_sdl_mixer\bin\SDL*.dll .
- copy build_ext\built_glew\lib\glew32.dll .
- copy build_ext\fluidsynth-lite\src\libfluidsynth.dll .
- 7z a %ARTIFACT% systemshock.exe *.dll shaders/ res/
artifacts:
- path: systemshock-x86.zip
name: Shockolate (32bit)
- path: systemshock-x64.zip
name: Shockolate (64bit)
version: '0.5.{build}'
# Finally, we deploy the ZIP file as a GitHub release
# FIXME: How do we want to be building releases? Seems like this would be better as a manual process
# TODO: invent a better versioning scheme for the tag name
deploy:
- provider: GitHub
release: $(appveyor_repo_tag_name)
description: 'Latest release build of Shockolate'
artifact: systemshock-x86.zip, systemshock-x64.zip
auth_token:
secure: P1kIk8rRxKAYHqDrOWf0Zf5spfR+N86E0lO8VBu99vHtECJgPLn/Z6tBmL9cxPah
on:
APPVEYOR_REPO_TAG: true