-
Notifications
You must be signed in to change notification settings - Fork 58
156 lines (130 loc) · 5.5 KB
/
main.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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
name: main
on: [ push, pull_request, workflow_dispatch ]
jobs:
cmake:
strategy:
matrix:
os: [ ubuntu-latest ]
profile: [ "Debug", "Release" ]
runs-on: ${{ matrix.os }}
steps:
- name: Get number of CPU cores
uses: SimenB/github-actions-cpu-cores@v2
id: cpu-cores
- uses: actions/checkout@v4
- name: "Install Dependencies"
run: |
sudo apt-get -qq update
sudo apt-get -qq install --no-install-recommends \
gettext \
libasound2-dev \
libbullet-dev \
libgnutls28-dev \
libopenxr-dev \
libqscintilla2-qt5-dev \
libsdl2-dev \
libvorbis-dev \
libvulkan-dev \
libwayland-dev \
libxcursor-dev \
libxkbcommon-dev \
libxrandr-dev \
qtbase5-dev
# Disabled due to warnings that break the debug build with -Werror
# libode-dev
# libavcodec-dev libavformat-dev libavutil-dev libswscale-dev
- name: "Configure: ${{ matrix.profile }}"
run: |
cmake -B build_${{ matrix.profile }} -DCMAKE_BUILD_TYPE=${{ matrix.profile }}
- name: "Build: ${{ matrix.profile }}"
run: |
cmake --build build_${{ matrix.profile }} --parallel ${{ steps.cpu-cores.outputs.count }}
make:
strategy:
matrix:
include:
- name: web
fte_target: web
make_targets: "gl-rel"
os: ubuntu-latest
- name: linux64
fte_target: linux64
make_targets: "m-rel sv-rel qtv-rel qcc-rel"
os: ubuntu-latest
packages: "libasound2-dev libgl-dev libegl1-mesa-dev libwayland-dev libxcursor-dev libxi-dev libxkbcommon-dev libxrandr-dev libxss-dev"
- name: win32
fte_target: win32
make_targets: "m-rel sv-rel qcc-rel"
os: ubuntu-latest
packages: "binutils-mingw-w64-i686 gcc-mingw-w64-i686 g++-mingw-w64-i686"
- name: win64
fte_target: win64
make_targets: "m-rel sv-rel qcc-rel"
os: ubuntu-latest
packages: "binutils-mingw-w64-x86-64 gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64"
- name: macos-arm64
fte_target: SDL2
make_targets: "gl-rel sv-rel qcc-rel"
args: "ARCH=arm STRIPFLAGS="
packages: "sdl2"
os: macos-latest
name: make-${{ matrix.name }}
runs-on: ${{ matrix.os }}
timeout-minutes: 30
steps:
- name: Get number of CPU cores
uses: SimenB/github-actions-cpu-cores@v2
id: cpu-cores
- uses: actions/checkout@v4
- name: Extract versions
run: grep 'VER=' engine/Makefile | tee makelibs_versions
- uses: actions/cache@v4
id: cache
with:
path: engine/libs-*
key: ${{ runner.os }}-${{ matrix.fte_target }}-${{ hashFiles('makelibs_versions') }}
- uses: mymindstorm/setup-emsdk@v14
with:
version: "2.0.12"
actions-cache-folder: "emsdk-cache-2.0.12"
cache-key: "emsdk-2.0.12"
if: matrix.fte_target == 'web'
- name: Verify emscripten
run: emcc -v
if: matrix.fte_target == 'web'
- name: Install dependencies (linux)
run: sudo apt-get -qq update && sudo apt-get -qq install --no-install-recommends ${{ matrix.packages }}
if: matrix.packages != '' && matrix.os == 'ubuntu-latest'
- name: Install dependencies (macos)
run: brew install ${{ matrix.packages }}
if: matrix.packages != '' && matrix.os == 'macos-latest'
- name: Build dependencies
working-directory: engine
run: make FTE_TARGET=${{ matrix.fte_target }} makelibs ${{ matrix.args }}
if: steps.cache.outputs.cache-hit != 'true'
- uses: ammaraskar/gcc-problem-matcher@0.3.0
- name: Build ${{ matrix.name }}
working-directory: engine
run: |
make -j ${{ steps.cpu-cores.outputs.count }} FTE_TARGET=${{ matrix.fte_target }} ${{ matrix.make_targets }} ${{ matrix.args }} LINK_EZHUD=1 LINK_OPENSSL=1
- name: Attach macOS docs
run: |
cat <<EOF > engine/release/fte_macos.txt
To allow executables to run issue for example:
chmod +x fteqw-glsdl2
xattr -d com.apple.quarantine fteqw-glsdl2
If you don't have SDL2 installed, run:
brew install sdl2
EOF
if: matrix.os == 'macos-latest'
- name: Get version
id: version
run: echo "short_sha=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: fteqw-${{ matrix.name }}-${{ steps.version.outputs.short_sha }}
path: |
engine/release/fte*
!engine/release/*.db
compression-level: 9