-
Notifications
You must be signed in to change notification settings - Fork 0
/
.gitlab-ci.yml
139 lines (121 loc) · 5.71 KB
/
.gitlab-ci.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
# Copyright 2019-2022 David Robillard <[email protected]>
# SPDX-License-Identifier: 0BSD OR ISC
variables:
GIT_SUBMODULE_STRATEGY: recursive
default:
image: lv2plugin/debian-x64
script:
- meson setup build -Dwerror=true
- ninja -C build test
dev:
image: lv2plugin/debian-x64
script:
- meson setup build --wrap-mode=forcefallback -Dbuildtype=debug -Dwarning_level=3 -Dwerror=true
- ninja -C build test
- meson configure -Dbuildtype=release -Db_coverage=false build
- ninja -C build test
- mkdir -p build/doc/man
- cp subprojects/serd/doc/man/mandoc.css build/doc/man/
- mandoc -Thtml -Wwarning -O style=mandoc.css,man=%N.html subprojects/sord/doc/sord_validate.1 > build/doc/man/sord_validate.html
- mandoc -Thtml -Wwarning -O style=mandoc.css,man=%N.html subprojects/sord/doc/sordi.1 > build/doc/man/sordi.html
- mandoc -Thtml -Wwarning -O style=mandoc.css,man=%N.html subprojects/lilv/doc/lv2bench.1 > build/doc/man/lv2bench.html
- mandoc -Thtml -Wwarning -O style=mandoc.css,man=%N.html subprojects/lilv/doc/lv2apply.1 > build/doc/man/lv2apply.html
- mandoc -Thtml -Wwarning -O style=mandoc.css,man=%N.html subprojects/lilv/doc/lv2info.1 > build/doc/man/lv2info.html
- mandoc -Thtml -Wwarning -O style=mandoc.css,man=%N.html subprojects/lilv/doc/lv2ls.1 > build/doc/man/lv2ls.html
- mandoc -Thtml -Wwarning -O style=mandoc.css,man=%N.html subprojects/serd/doc/man/serdi.1 > build/doc/man/serdi.html
artifacts:
paths:
- build/doc
static:
image: lv2plugin/debian-x64
script:
- meson setup build --wrap-mode=forcefallback -Ddefault_library=static -Dbuildtype=debug -Dwarning_level=3 -Dwerror=true -Ddocs=disabled
- ninja -C build test
- meson configure -Dbuildtype=release build
- ninja -C build test
sanitize:
image: lv2plugin/debian-x64-clang
script:
- meson setup build --wrap-mode=forcefallback -Db_lundef=false -Dbuildtype=plain -Dwarning_level=3 -Dwerror=true -Dc_args="-fno-sanitize-recover=all -fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=implicit-conversion -fsanitize=local-bounds -fsanitize=nullability" -Dc_link_args="-fno-sanitize-recover=all -fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=implicit-conversion -fsanitize=local-bounds -fsanitize=nullability" -Dcpp_args="-fno-sanitize-recover=all -fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero" -Dcpp_link_args="-fno-sanitize-recover=all -fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero" -Ddocs=disabled
- ninja -C build test
- meson configure build -Dbuildtype=debugoptimized -Dc_args="" -Dc_link_args="" -Dcpp_args="" -Dcpp_link_args=""
- meson configure build -Db_sanitize=thread
- ninja -C build test
variables:
CC: "clang"
# Linux Distributions
fedora:
image: lv2plugin/fedora-big
script:
- meson setup build --wrap-mode=forcefallback -Dbuildtype=plain -Dwarning_level=3 -Dwerror=true
- ninja -C build test
variables:
CFLAGS: -O2 -D_FORTIFY_SOURCE=2
# Linux Platforms
arm32:
image: lv2plugin/debian-arm32
script:
- meson setup build --wrap-mode=forcefallback --cross-file=/usr/share/meson/cross/arm-linux-gnueabihf.ini -Dbuildtype=debug -Ddocs=disabled -Dwarning_level=3 -Dwerror=true
- ninja -C build test
- meson configure -Dbuildtype=release build
- ninja -C build test
arm64:
image: lv2plugin/debian-arm64
script:
- meson setup build --wrap-mode=forcefallback --cross-file=/usr/share/meson/cross/aarch64-linux-gnu.ini -Dbuildtype=debug -Ddocs=disabled -Dwarning_level=3 -Dwerror=true
- ninja -C build test
- meson configure -Dbuildtype=release build
- ninja -C build test
mingw32:
image: lv2plugin/debian-mingw32
script:
- meson setup build --wrap-mode=forcefallback --cross-file=/usr/share/meson/cross/i686-w64-mingw32.ini -Dc_args="-static-libgcc" -Dc_link_args="-static-libgcc" -Dcpp_args="-static-libgcc" -Dcpp_link_args="-static-libgcc" -Dbuildtype=debug -Ddocs=disabled -Dwarning_level=everything -Dwerror=true
- ninja -C build
- meson configure -Dbuildtype=release build
- ninja -C build test
variables:
WINEPATH: "Z:\\usr\\lib\\gcc\\i686-w64-mingw32\\10-win32"
mingw64:
image: lv2plugin/debian-mingw64
script:
- meson setup build --wrap-mode=forcefallback --cross-file=/usr/share/meson/cross/x86_64-w64-mingw32.ini -Dc_args="-static-libgcc" -Dc_link_args="-static-libgcc" -Dcpp_args="-static-libgcc" -Dcpp_link_args="-static-libgcc" -Dbuildtype=debug -Ddocs=disabled -Dwarning_level=everything -Dwerror=true
- ninja -C build
- meson configure -Dbuildtype=release build
- ninja -C build test
variables:
WINEPATH: "Z:\\usr\\lib\\gcc\\x86_64-w64-mingw32\\8.3-win32"
# Non-Linux/Docker rows (not hosted)
freebsd:
tags: [freebsd,meson]
script:
- meson setup build --wrap-mode=forcefallback -Dbuildtype=debug -Dwarning_level=everything -Dwerror=true -Ddocs=disabled -Db_lundef=false
- ninja -C build test
- meson configure -Dbuildtype=release build
- ninja -C build test
mac:
tags: [macos]
script:
- meson setup build --wrap-mode=forcefallback -Dbuildtype=debug -Ddocs=disabled -Dwarning_level=everything -Dwerror=true
- ninja -C build test
- meson configure -Dbuildtype=release build
- ninja -C build test
win:
tags: [windows,meson]
script:
- meson setup build --wrap-mode=forcefallback -Dbuildtype=debug -Ddocs=disabled -Dwarning_level=everything -Dwerror=true
- ninja -C build test
- meson configure -Dbuildtype=release build
- ninja -C build test
# Documentation
pages:
stage: deploy
script:
- mkdir public
- mv build/doc/man public/man
needs:
- dev
artifacts:
paths:
- public
only:
- main