-
-
Notifications
You must be signed in to change notification settings - Fork 0
89 lines (83 loc) · 4.27 KB
/
build_windows.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
# Controls when the workflow will run
on:
# Allows you to run this workflow manually target the Actions tab
workflow_dispatch:
name: Build Windows
jobs:
build:
strategy:
matrix:
include:
- { sys: mingw64, env: x86_64, name: Formula1, filesys: filesystem }
- { sys: mingw32, env: i686, name: Formula1, filesys: filesystem }
runs-on: windows-latest
steps:
- name: Checkout sources
uses: actions/checkout@v3
- name: Setup Msys
uses: msys2/setup-msys2@v2
with:
msystem: ${{matrix.sys}}
install: >-
base-devel
mingw-w64-${{matrix.env}}-gcc
mingw-w64-${{matrix.env}}-SDL
mingw-w64-${{matrix.env}}-SDL_ttf
mingw-w64-${{matrix.env}}-SDL_image
mingw-w64-${{matrix.env}}-SDL_mixer
mingw-w64-${{matrix.env}}-SDL_gfx
mingw-w64-${{matrix.env}}-make
mingw-w64-${{matrix.env}}-harfbuzz
mingw-w64-${{matrix.env}}-freetype
mingw-w64-${{matrix.env}}-libwebp
mingw-w64-${{matrix.env}}-libtiff
mingw-w64-${{matrix.env}}-libmikmod
- name: Build Game
shell: msys2 {0}
run: |
make "EXE=\"${{matrix.name}}.exe\"" "PREFIX=/${{matrix.sys}}" "CXXFLAGS=-I/${{matrix.sys}}/include -I/${{matrix.sys}}/include/SDL -D_GNU_SOURCE=1 -Dmain=SDL_main" "LDFLAGS=-L/${{matrix.sys}}/lib -lmingw32 -lSDLmain -lSDL -mwindows -lSDL_image -lSDL_ttf -lSDL_mixer -lmikmod -lSDL_gfx -lm"
- name: Copy Game And Assets
shell: msys2 {0}
run: |
mkdir ./Release
mkdir "./Release/${{matrix.name}}"
cp "${{matrix.name}}.exe" "./Release/${{matrix.name}}/"
cp -R "./${{matrix.filesys}}" "./Release/${{matrix.name}}/${{matrix.filesys}}/"
cp ./README.md "./Release/${{matrix.name}}/"
cp ./LICENSE "./Release/${{matrix.name}}/"
- name: Copy dll libraries
shell: msys2 {0}
run: |
cp /${{matrix.sys}}/bin/libbrotli*.dll "./Release/${{matrix.name}}/"
cp /${{matrix.sys}}/bin/libbz*.dll "./Release/${{matrix.name}}/"
cp /${{matrix.sys}}/bin/libdeflate*.dll "./Release/${{matrix.name}}/"
cp /${{matrix.sys}}/bin/libfreetype*.dll "./Release/${{matrix.name}}/"
cp /${{matrix.sys}}/bin/libgcc*.dll "./Release/${{matrix.name}}/"
cp /${{matrix.sys}}/bin/libglib*.dll "./Release/${{matrix.name}}/"
cp /${{matrix.sys}}/bin/libgraphite*.dll "./Release/${{matrix.name}}/"
cp /${{matrix.sys}}/bin/libharfbuzz*.dll "./Release/${{matrix.name}}/"
cp /${{matrix.sys}}/bin/libiconv*.dll "./Release/${{matrix.name}}/"
cp /${{matrix.sys}}/bin/libintl*.dll "./Release/${{matrix.name}}/"
cp /${{matrix.sys}}/bin/libjbig*.dll "./Release/${{matrix.name}}/"
cp /${{matrix.sys}}/bin/libjpeg*.dll "./Release/${{matrix.name}}/"
cp /${{matrix.sys}}/bin/libLerc*.dll "./Release/${{matrix.name}}/"
cp /${{matrix.sys}}/bin/liblzma*.dll "./Release/${{matrix.name}}/"
cp /${{matrix.sys}}/bin/libogg*.dll "./Release/${{matrix.name}}/"
cp /${{matrix.sys}}/bin/libpcre*.dll "./Release/${{matrix.name}}/"
cp /${{matrix.sys}}/bin/libpng*.dll "./Release/${{matrix.name}}/"
cp /${{matrix.sys}}/bin/libstdc*.dll "./Release/${{matrix.name}}/"
cp /${{matrix.sys}}/bin/libtiff*.dll "./Release/${{matrix.name}}/"
cp /${{matrix.sys}}/bin/libwebp*.dll "./Release/${{matrix.name}}/"
cp /${{matrix.sys}}/bin/libzstd*.dll "./Release/${{matrix.name}}/"
cp /${{matrix.sys}}/bin/zlib*.dll "./Release/${{matrix.name}}/"
cp /${{matrix.sys}}/bin/libSDL*.dll "./Release/${{matrix.name}}/"
cp /${{matrix.sys}}/bin/SDL*.dll "./Release/${{matrix.name}}/"
cp /${{matrix.sys}}/bin/libwinpthread*.dll "./Release/${{matrix.name}}/"
cp /${{matrix.sys}}/bin/libmikmod*.dll "./Release/${{matrix.name}}/"
cp /${{matrix.sys}}/bin/libmad*.dll "./Release/${{matrix.name}}/"
cp /${{matrix.sys}}/bin/libsharpyuv*.dll "./Release/${{matrix.name}}/"
- name: Store build
uses: actions/upload-artifact@v3
with:
name: ${{matrix.name}} ${{ matrix.env }}
path: ./Release/