From e2229328104155dde3d843bee8024175ef53d4e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Sun, 17 Jan 2021 15:33:59 +0000 Subject: [PATCH] [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. --- .gitlab-ci.yml | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++ ChangeLog | 8 ++++++++ 2 files changed, 62 insertions(+) create mode 100644 .gitlab-ci.yml 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' diff --git a/ChangeLog b/ChangeLog index c0e2511b7..6e90f40f3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2021-03-07 Tim-Philipp Müller + + [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. + 2021-03-07 Tim-Philipp Müller [meson] Add subproject fallbacks for 'libpng' and 'zlib'.