aboutsummaryrefslogtreecommitdiffstats
path: root/.gitlab-ci.yml
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2022-06-27 12:59:34 -0400
committerDavid Robillard <d@drobilla.net>2022-07-10 13:39:53 -0400
commit5e78edf6e09373938a796cf44fb38d2309d04b4d (patch)
treee80618e5e092dcb3d9501a2568cf67489fe3d1bd /.gitlab-ci.yml
parentbcc1c936b15782d8fa59e2ebf471cf686527135c (diff)
downloadserd-5e78edf6e09373938a796cf44fb38d2309d04b4d.tar.gz
serd-5e78edf6e09373938a796cf44fb38d2309d04b4d.tar.bz2
serd-5e78edf6e09373938a796cf44fb38d2309d04b4d.zip
Switch to meson build system
Diffstat (limited to '.gitlab-ci.yml')
-rw-r--r--.gitlab-ci.yml125
1 files changed, 56 insertions, 69 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 41438bd3..764055b4 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -5,174 +5,161 @@ variables:
.build_template: &build_definition
stage: build
- artifacts:
- paths: ["build/", ".lock-waf*"]
-
arm32_dbg:
<<: *build_definition
image: lv2plugin/debian-arm32
script:
- - python3 ./waf configure build test -dST --no-coverage --werror --wrapper=qemu-arm-static
- variables:
- AR: "arm-linux-gnueabihf-ar"
- CC: "arm-linux-gnueabihf-gcc"
- CFLAGS: "-O0 -g -D_FILE_OFFSET_BITS=64"
- CXX: "arm-linux-gnueabihf-g++"
- CXXFLAGS: "-O0 -g -D_FILE_OFFSET_BITS=64"
+ - meson setup build --cross-file=/usr/share/meson/cross/arm-linux-gnueabihf.ini -Dbuildtype=debug -Ddocs=disabled -Dstrict=true -Dwerror=true
+ - ninja -C build test
arm32_rel:
<<: *build_definition
image: lv2plugin/debian-arm32
script:
- - python3 ./waf configure build -ST --werror --no-coverage --wrapper=qemu-arm-static
- variables:
- AR: "arm-linux-gnueabihf-ar"
- CC: "arm-linux-gnueabihf-gcc"
- CFLAGS: "-O2 -DNDEBUG -D_FILE_OFFSET_BITS=64"
- CXX: "arm-linux-gnueabihf-g++"
- CXXFLAGS: "-O2 -DNDEBUG -D_FILE_OFFSET_BITS=64"
+ - meson setup build --cross-file=/usr/share/meson/cross/arm-linux-gnueabihf.ini -Dbuildtype=release -Ddocs=disabled -Dstrict=true -Dwerror=true
+ - ninja -C build test
arm64_dbg:
<<: *build_definition
image: lv2plugin/debian-arm64
script:
- - python3 ./waf configure build test -dST --werror --no-coverage --wrapper=qemu-aarch64-static
- variables:
- AR: "aarch64-linux-gnu-ar"
- CC: "aarch64-linux-gnu-gcc"
- CXX: "aarch64-linux-gnu-g++"
+ - meson setup build --cross-file=/usr/share/meson/cross/aarch64-linux-gnu.ini -Dbuildtype=debug -Ddocs=disabled -Dstrict=true -Dwerror=true
+ - ninja -C build test
arm64_rel:
<<: *build_definition
image: lv2plugin/debian-arm64
script:
- - python3 ./waf configure build test -ST --werror --no-coverage --wrapper=qemu-aarch64-static
- variables:
- AR: "aarch64-linux-gnu-ar"
- CC: "aarch64-linux-gnu-gcc"
- CXX: "aarch64-linux-gnu-g++"
+ - meson setup build --cross-file=/usr/share/meson/cross/aarch64-linux-gnu.ini -Dbuildtype=release -Ddocs=disabled -Dstrict=true -Dwerror=true
+ - ninja -C build test
x64_dbg:
<<: *build_definition
image: lv2plugin/debian-x64
script:
- - python3 ./waf configure build test -dST --werror --docs
+ - meson setup build -Dbuildtype=debug -Ddocs=enabled -Dstrict=true -Dwerror=true -Db_coverage=true
+ - ninja -C build test
+ - ninja -C build coverage-html
- mkdir -p build/doc/
- cp doc/*.svg build/doc/
- - cp doc/mandoc.css build/doc/
- - mandoc -Thtml -Werror -O style=mandoc.css doc/serdi.1 > build/doc/serdi.html
artifacts:
paths:
- build/doc
- - build/coverage
+ - build/meson-logs/coveragereport
x64_rel:
<<: *build_definition
image: lv2plugin/debian-x64
script:
- - python3 ./waf configure build test -ST --werror
+ - meson setup build -Dbuildtype=release -Ddocs=disabled -Dstrict=true -Dwerror=true
+ - ninja -C build test
+
x64_static:
<<: *build_definition
image: lv2plugin/debian-x64
script:
- - python3 ./waf configure build test -ST --werror --no-posix --static-progs
+ - meson setup build -Ddocs=disabled -Dstrict=true -Dwerror=true -Dstatic=true -Ddefault_library=static
+ - ninja -C build test
+
x64_sanitize:
<<: *build_definition
image: lv2plugin/debian-x64-clang
script:
- - python3 ./waf configure build test -ST --werror --no-coverage
+ - meson setup build -Db_lundef=false -Dbuildtype=plain -Ddocs=disabled -Dstrict=true -Dwerror=true
+ - ninja -C build test
variables:
CC: "clang"
- CFLAGS: "-fno-sanitize-recover=all -fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=unsigned-integer-overflow -fsanitize=implicit-conversion -fsanitize=local-bounds -fsanitize=nullability"
CXX: "clang++"
+ CFLAGS: "-fno-sanitize-recover=all -fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=unsigned-integer-overflow -fsanitize=implicit-conversion -fsanitize=local-bounds -fsanitize=nullability"
CXXFLAGS: "-fno-sanitize-recover=all -fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=unsigned-integer-overflow -fsanitize=implicit-conversion -fsanitize=local-bounds -fsanitize=nullability"
- LINKFLAGS: "-fno-sanitize-recover=all -fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=unsigned-integer-overflow -fsanitize=implicit-conversion -fsanitize=local-bounds -fsanitize=nullability"
+ LDFLAGS: "-fno-sanitize-recover=all -fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=unsigned-integer-overflow -fsanitize=implicit-conversion -fsanitize=local-bounds -fsanitize=nullability"
mingw32_dbg:
<<: *build_definition
image: lv2plugin/debian-mingw32
script:
- - python3 ./waf configure build -dST --werror --no-coverage --wrapper=wine
+ - meson setup build --cross-file=/usr/share/meson/cross/i686-w64-mingw32.ini -Dbuildtype=debug -Ddocs=disabled -Dstrict=true -Dwerror=true
+ - ninja -C build
variables:
- AR: "i686-w64-mingw32-ar"
- CC: "i686-w64-mingw32-gcc"
- CXX: "i686-w64-mingw32-g++"
+ WINEPATH: "Z:\\usr\\lib\\gcc\\i686-w64-mingw32\\10-win32"
mingw32_rel:
<<: *build_definition
image: lv2plugin/debian-mingw32
script:
- - python3 ./waf configure build -ST --werror --no-coverage --wrapper=wine
+ - meson setup build --cross-file=/usr/share/meson/cross/i686-w64-mingw32.ini -Dbuildtype=release -Ddocs=disabled -Dstrict=true -Dwerror=true
+ - ninja -C build
variables:
- AR: "i686-w64-mingw32-ar"
- CC: "i686-w64-mingw32-gcc"
- CXX: "i686-w64-mingw32-g++"
+ WINEPATH: "Z:\\usr\\lib\\gcc\\i686-w64-mingw32\\10-win32"
mingw64_dbg:
<<: *build_definition
image: lv2plugin/debian-mingw64
script:
- - python3 ./waf configure build -dST --werror --no-coverage --wrapper=wine
+ - meson setup build --cross-file=/usr/share/meson/cross/x86_64-w64-mingw32.ini -Dbuildtype=debug -Ddocs=disabled -Dstrict=true -Dwerror=true
+ - ninja -C build test
variables:
- AR: "x86_64-w64-mingw32-ar"
- CC: "x86_64-w64-mingw32-gcc"
- CXX: "x86_64-w64-mingw32-g++"
+ WINEPATH: "Z:\\usr\\lib\\gcc\\x86_64-w64-mingw32\\8.3-win32"
mingw64_rel:
<<: *build_definition
image: lv2plugin/debian-mingw64
script:
- - python3 ./waf configure build -ST --werror --no-coverage --wrapper=wine
+ - meson setup build --cross-file=/usr/share/meson/cross/x86_64-w64-mingw32.ini -Dbuildtype=release -Ddocs=disabled -Dstrict=true -Dwerror=true
+ - ninja -C build test
variables:
- AR: "x86_64-w64-mingw32-ar"
- CC: "x86_64-w64-mingw32-gcc"
- CXX: "x86_64-w64-mingw32-g++"
+ WINEPATH: "Z:\\usr\\lib\\gcc\\x86_64-w64-mingw32\\8.3-win32"
mac_dbg:
<<: *build_definition
- script:
- - python ./waf configure build test -dST --werror --no-coverage
tags: [macos]
+ script:
+ - meson setup build -Dbuildtype=debug -Ddocs=disabled -Dstrict=true -Dwerror=true
+ - ninja -C build test
mac_rel:
<<: *build_definition
- script:
- - python ./waf configure build test -ST --werror --no-coverage
tags: [macos]
+ script:
+ - meson setup build -Dbuildtype=release -Ddocs=disabled -Dstrict=true -Dwerror=true
+ - ninja -C build test
win_dbg:
<<: *build_definition
+ tags: [windows,meson]
script:
- - python ./waf configure build test -dST --werror --no-coverage
- tags: [windows,msvc,python]
+ - meson setup build -Dbuildtype=debug -Ddocs=disabled -Dstrict=true -Dwerror=true
+ - ninja -C build test
win_rel:
<<: *build_definition
+ tags: [windows,meson]
script:
- - python ./waf configure build test -ST --werror --no-coverage
- tags: [windows,msvc,python]
-
+ - meson setup build -Dbuildtype=release -Ddocs=disabled -Dstrict=true -Dwerror=true
+ - ninja -C build test
pages:
stage: deploy
script:
- - mkdir -p .public/doc
- - mkdir -p .public/man
- - mkdir -p .public/c
- - mv build/doc/c/singlehtml .public/c/singlehtml
- - mv build/doc/c/html .public/c/html
- - mv build/doc/serdi.html .public/man/serdi.html
- - mv build/doc/mandoc.css .public/man/mandoc.css
- - mv .public public
+ - mkdir public
+ - mkdir public/c
+ - mkdir public/man
+ - mv build/meson-logs/coveragereport/ public/coverage
+ - mv build/doc/c/html/ public/c/html/
+ - mv build/doc/c/singlehtml/ public/c/singlehtml/
+ - mv build/doc/serdi.html public/man/serdi.html
+ - mv build/doc/mandoc.css public/man/mandoc.css
+ needs:
+ - x64_dbg
artifacts:
paths:
- public