diff options
author | Tim-Philipp Müller <tim@centricular.com> | 2021-01-17 15:33:59 +0000 |
---|---|---|
committer | Werner Lemberg <wl@gnu.org> | 2021-03-07 18:01:31 +0100 |
commit | e2229328104155dde3d843bee8024175ef53d4e0 (patch) | |
tree | f9c798319f6f39474943cb5d1bb98b0629732403 /.gitlab-ci.yml | |
parent | bb42afbda084b0ac5b017f454fd1b262a94805dd (diff) | |
download | freetype2-e2229328104155dde3d843bee8024175ef53d4e0.tar.gz |
[ci] Add basic support for Meson builds with MSVC on Windows.
This adds meson jobs for VS2017 (x86 and x86_64).
* .gitlab-ci.yml: New file.
Diffstat (limited to '.gitlab-ci.yml')
-rw-r--r-- | .gitlab-ci.yml | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 000000000..fa52cfa28 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,54 @@ +stages: + - build + +# FIXME: Use --werror once warnings are fixed. +variables: + MESON_ARGS: --fatal-meson-warnings + MESON_ARGS_WINDOWS: ${MESON_ARGS} --force-fallback-for=zlib + +.build meson windows: + # See + # https://gitlab.freedesktop.org/gstreamer/gst-ci/container_registry/213 + image: 'registry.freedesktop.org/gstreamer/gst-ci/amd64/windows:v14-master' + stage: 'build' + tags: + - 'docker' + - 'windows' + - '1809' + - 'gstreamer-windows' + variables: + # Make sure any failure in PowerShell scripts is fatal. + ErrorActionPreference: 'Stop' + WarningPreference: 'Stop' + # Uncomment the following key if need to pass custom args, as well with + # the `$env:MESON_ARGS` line in the `script:` blocks. + # MESON_ARGS: >- + # -Dfoo=enabled + # -Dbar=disabled + before_script: + # Make sure meson is up to date, so we don't need to rebuild the image + # with each release. + - pip3 install -U meson ninja + script: + # For some reason, options are separated by newlines instead of spaces, + # so we have to replace them first. + #- $env:MESON_ARGS = $env:MESON_ARGS.replace("`n"," ") + # Gitlab executes PowerShell in docker, but `VsDevCmd.bat` is a batch + # script. Environment variables substitutions is done by PowerShell + # before calling `cmd.exe`, that's why we use `$env:FOO` instead of + # `%FOO%`. + - cmd.exe /C "C:\BuildTools\Common7\Tools\VsDevCmd.bat -host_arch=amd64 -arch=$env:ARCH && + meson setup build $env:MESON_ARGS_WINDOWS && + meson compile --verbose -C build && + meson test -C build && + meson test -C build --benchmark" + +meson vs2017 amd64: + extends: '.build meson windows' + variables: + ARCH: 'amd64' + +meson vs2017 x86: + extends: '.build meson windows' + variables: + ARCH: 'x86' |