summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
diff options
context:
space:
mode:
authorTim-Philipp Müller <tim@centricular.com>2021-01-17 15:33:59 +0000
committerWerner Lemberg <wl@gnu.org>2021-03-07 18:01:31 +0100
commite2229328104155dde3d843bee8024175ef53d4e0 (patch)
treef9c798319f6f39474943cb5d1bb98b0629732403 /.gitlab-ci.yml
parentbb42afbda084b0ac5b017f454fd1b262a94805dd (diff)
downloadfreetype2-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.yml54
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'