-
Notifications
You must be signed in to change notification settings - Fork 72
137 lines (122 loc) · 3.55 KB
/
Copy pathmaster.yml
File metadata and controls
137 lines (122 loc) · 3.55 KB
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
name: Continuous Integration
on:
push:
branches: [ "master" ]
tags-ignore: ['*']
paths-ignore: ['**.md']
pull_request:
branches: [ "master" ]
paths-ignore: ['**.md']
jobs:
build:
name: ${{ matrix.config.name }}
runs-on: ${{ matrix.config.os }}
defaults:
run:
shell: ${{ matrix.config.shell }}
strategy:
fail-fast: false
matrix:
config:
- {
name: Linux GCC,
os: ubuntu-latest,
compiler: gcc,
shell: bash,
options: -Dfloating-point=double,
}
- {
name: Linux GCC (Single Precision),
os: ubuntu-latest,
compiler: gcc,
shell: bash,
options: -Dfloating-point=single,
}
- {
name: macOS Clang,
os: macos-latest,
compiler: clang,
shell: bash,
}
- {
name: MSYS2 UCRT64,
os: windows-latest,
compiler: gcc,
shell: 'msys2 {0}',
msystem: ucrt64,
msys-env: mingw-w64-ucrt-x86_64,
}
- {
name: Windows MSVC,
os: windows-latest,
compiler: cl,
shell: pwsh,
options: -Dfloating-point=double,
}
steps:
- name: Install dependencies (Ubuntu)
if: runner.os == 'Linux'
run: sudo apt install meson-1.5
- name: Install dependencies (macOS)
if: runner.os == 'macOS'
env:
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1
run: |
brew update || true
brew install \
meson
- name: Install dependencies (MSYS2)
if: matrix.config.shell == 'msys2 {0}'
uses: msys2/setup-msys2@v2.31.1
with:
msystem: ${{ matrix.config.msystem }}
update: false
install: >-
${{ matrix.config.msys-env }}-meson
${{ matrix.config.msys-env }}-gcc
- name: Install dependencies (MSVC)
if: matrix.config.compiler == 'cl'
run: |
pip install meson ninja
- name: Set up MSVC
if: matrix.config.compiler == 'cl'
uses: ilammy/msvc-dev-cmd@v1
with:
arch: x64
- uses: actions/checkout@v6
- name: Build (MSYS2)
if: matrix.config.shell == 'msys2 {0}'
env:
CC: ${{ matrix.config.compiler }}
run: |
mkdir -p build temp
cd build
meson setup .. -Dprefix=$(realpath ../temp) ${{ matrix.config.options }}
meson install
- name: Build (General)
if: matrix.config.shell != 'msys2 {0}'
env:
CC: ${{ matrix.config.compiler }}
run: |
meson setup build -Dprefix="${{ github.workspace }}/temp" ${{ matrix.config.options }}
meson install -C build
- name: Upload artifacts (Windows)
uses: actions/upload-artifact@v7
if: runner.os == 'Windows'
with:
name: faac-${{ github.sha }}-${{ matrix.config.name }}
path: temp/*
cppcheck:
name: Cppcheck
runs-on: ubuntu-latest
steps:
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install cppcheck
- uses: actions/checkout@v6
- name: Run cppcheck
shell: bash
run: |
cppcheck --version
cppcheck --error-exitcode=1 -j4 -q --check-level=exhaustive -Iinclude/ libfaac/ frontend/