diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 35daa5e61..d6e39f69e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -373,14 +373,16 @@ mingw-64 build: # For some reason, options are separated by newline instead of space, 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 subprojects update --reset && - meson build $env:MESON_ARGS && - ninja -C build" + meson setup build --prefix `"$pwd\bundle`" $env:MESON_ARGS && + meson compile -C build && + meson install -C build" + artifacts: expire_in: "7 days" when: "always" @@ -392,6 +394,9 @@ vs2019 shared amd64: variables: ARCH: 'amd64' EXTRA_MESON_ARGS: '--default-library=shared' + artifacts: + paths: + - "*" vs2019 static amd64: extends: '.build windows' @@ -405,6 +410,68 @@ vs2019 shared x86: ARCH: 'x86' EXTRA_MESON_ARGS: '--default-library=shared' +.test vs2019: + dependencies: + - 'vs2019 shared amd64' + needs: + - 'vs2019 shared amd64' + extends: + - '.build windows' + stage: 'test' + artifacts: + when: 'always' + expire_in: "7 days" + paths: + - build/meson-logs/* + - build/test/*.log + - build/test/pdiff/*.log + - build/test/output + exclude: + - "build/test/**/*.cs" + - "build/test/**/*.trace" + +test vs2019 win32: + extends: '.test vs2019' + script: + - $ErrorActionPreference = "Stop" + + - $env:PATH = "$pwd\bundle\bin;" + $env:PATH + + - $env:CAIRO_TEST_TARGET = "win32" + + - $lines = (Get-Content .gitlab-ci\ignore-win32-dib-rgb24.txt) + - $env:CAIRO_TEST_IGNORE_win32_DIB_rgb24 = [string]::Join(',', $lines) + - $lines = (Get-Content .gitlab-ci\ignore-win32-dib-argb32.txt) + - $env:CAIRO_TEST_IGNORE_win32_DIB_argb32 = [string]::Join(',', $lines) + - $lines = (Get-Content .gitlab-ci\ignore-win32-ddb-rgb24.txt) + - $env:CAIRO_TEST_IGNORE_win32_DDB_rgb24 = [string]::Join(',', $lines) + - $lines = (Get-Content .gitlab-ci\ignore-win32-ddb-argb32.txt) + - $env:CAIRO_TEST_IGNORE_win32_DDB_argb32 = [string]::Join(',', $lines) + + # This job may run on a different runner than the previous + # build step, and different runners have different working + # directories. For example: + # - C:/Users/Administrator/runner/builds + # - C:/gitlab-runner/builds + # So the \test\srcdir link may point to nowhere. + # As a workaround, set the "srcdir" environment variable. + - $env:srcdir = "$pwd\test" + + - cmd /C "C:\BuildTools\Common7\Tools\VsDevCmd.bat -host_arch=amd64 -arch=amd64 && + cd build\test && + cairo-test-suite" + artifacts: + when: 'always' + expire_in: "7 days" + paths: + - build/meson-logs/* + - build/test/*.log + - build/test/pdiff/*.log + - build/test/output + exclude: + - "build/test/**/*.cs" + - "build/test/**/*.trace" + android arm64 fedora: # TODO: should probably build our own image here some day # See https://gitlab.freedesktop.org/gstreamer/gstreamer/container_registry/7689 for current images diff --git a/.gitlab-ci/ignore-win32-ddb-argb32.txt b/.gitlab-ci/ignore-win32-ddb-argb32.txt new file mode 100644 index 000000000..5000fb812 --- /dev/null +++ b/.gitlab-ci/ignore-win32-ddb-argb32.txt @@ -0,0 +1,72 @@ +clear +clip-operator +clip-text +coverage-intersecting-triangles +coverage-triangles +culled-glyphs +extended-blend-alpha-mask +extended-blend-mask +font-matrix-translation +ft-show-glyphs-positioning +ft-show-glyphs-table +ft-text-antialias-none +ft-text-vertical-layout-type1 +ft-text-vertical-layout-type3 +get-path-extents +glyph-cache-pressure +halo +halo-transform +inverse-text +large-font +operator-clear +operator-source +operator-www +overlapping-glyphs +partial-clip-text-bottom +partial-clip-text-left +partial-clip-text-right +partial-clip-text-top +pthread-show-text +radial-gradient +radial-gradient-mask +radial-gradient-mask-source +radial-gradient-source +record-replay-extend-reflect +record-replay-extend-repeat +record-select-font-face +record-text-transform +record1414x-select-font-face +record1414x-text-transform +record2x-select-font-face +record2x-text-transform +record90-select-font-face +record90-text-transform +recordflip-select-font-face +recordflip-text-transform +recordflip-whole-select-font-face +recordflip-whole-text-transform +select-font-face +show-glyphs-advance +show-text-current-point +smask +smask-text +smp-glyph +subsurface +subsurface-scale +text-antialias-gray +text-antialias-none +text-antialias-subpixel +text-antialias-subpixel-bgr +text-antialias-subpixel-rgb +text-antialias-subpixel-vbgr +text-antialias-subpixel-vrgb +text-glyph-range +text-pattern +text-rotate +text-transform +text-unhinted-metrics +unbounded-operator +user-font-color +user-font-mask +user-font-proxy +user-font-rescale \ No newline at end of file diff --git a/.gitlab-ci/ignore-win32-ddb-rgb24.txt b/.gitlab-ci/ignore-win32-ddb-rgb24.txt new file mode 100644 index 000000000..bae147b75 --- /dev/null +++ b/.gitlab-ci/ignore-win32-ddb-rgb24.txt @@ -0,0 +1,116 @@ +a1-clip-fill-rule +big-empty-box +big-empty-triangle +big-little-box +bitmap-font +bug-361 +bug-431 +bug-source-cu +clear +clip-device-offset +clip-fill-rule-pixel-aligned +clip-operator +clip-text +coverage-intersecting-triangles +coverage-triangles +culled-glyphs +dash-zero-length +degenerate-path +device-offset +device-offset-positive +extended-blend-mask +fill-and-stroke +fill-empty +fill-missed-stop +finer-grained-fallbacks +font-matrix-translation +ft-show-glyphs-positioning +ft-show-glyphs-table +ft-text-antialias-none +ft-text-vertical-layout-type1 +ft-text-vertical-layout-type3 +get-path-extents +glyph-cache-pressure +gradient-alpha +gradient-constant-alpha +gradient-zero-stops +gradient-zero-stops-mask +halo +halo-transform +image-surface-source +inverse-text +large-font +linear-gradient-one-stop +mask-ctm +mask-ctm mask-surface-ctm +mask-surface-ctm +new-sub-path +nil-surface +operator-clear +operator-source +operator-www +overlapping-boxes +overlapping-glyphs +partial-clip-text-bottom +partial-clip-text-left +partial-clip-text-right +partial-clip-text-top +pass-through +pdf-surface-source +pixman-downscale-best-24 +pixman-rotate +ps-surface-source +pthread-show-text +radial-gradient +radial-gradient-mask +radial-gradient-mask-source +radial-gradient-source +record-neg-extents-bounded +record-neg-extents-unbounded +record-replay-extend-none +record-replay-extend-pad +record-replay-extend-reflect +record-replay-extend-repeat +record-select-font-face +record-text-transform +record1414x-select-font-face +record1414x-text-transform +record2x-select-font-face +record2x-text-transform +record90-select-font-face +record90-text-transform +recordflip-select-font-face +recordflip-text-transform +recordflip-whole-select-font-face +recordflip-whole-text-transform +rel-path +scale-source-surface-paint +select-font-face +set-source +show-glyphs-advance +show-text-current-point +smask +smask-text +smp-glyph +source-surface-scale-paint +subsurface +subsurface-outside-target +subsurface-scale +text-antialias-gray +text-antialias-none +text-antialias-subpixel +text-antialias-subpixel-bgr +text-antialias-subpixel-rgb +text-antialias-subpixel-vbgr +text-antialias-subpixel-vrgb +text-glyph-range +text-pattern +text-rotate +text-transform +text-unhinted-metrics +thin-lines +unbounded-operator +user-font-color +user-font-mask +user-font-proxy +user-font-rescale \ No newline at end of file diff --git a/.gitlab-ci/ignore-win32-dib-argb32.txt b/.gitlab-ci/ignore-win32-dib-argb32.txt new file mode 100644 index 000000000..87ad0cf1e --- /dev/null +++ b/.gitlab-ci/ignore-win32-dib-argb32.txt @@ -0,0 +1,73 @@ +clear +clip-operator +clip-text +coverage-intersecting-triangles +coverage-triangles +culled-glyphs +extended-blend-alpha-mask +extended-blend-mask +fallback +font-matrix-translation +ft-show-glyphs-positioning +ft-show-glyphs-table +ft-text-antialias-none +ft-text-vertical-layout-type1 +ft-text-vertical-layout-type3 +get-path-extents +glyph-cache-pressure +halo +halo-transform +inverse-text +large-font +operator-clear +operator-source +operator-www +overlapping-glyphs +partial-clip-text-bottom +partial-clip-text-left +partial-clip-text-right +partial-clip-text-top +pthread-show-text +radial-gradient +radial-gradient-mask +radial-gradient-mask-source +radial-gradient-source +record-replay-extend-reflect +record-replay-extend-repeat +record-select-font-face +record-text-transform +record1414x-select-font-face +record1414x-text-transform +record2x-select-font-face +record2x-text-transform +record90-select-font-face +record90-text-transform +recordflip-select-font-face +recordflip-text-transform +recordflip-whole-select-font-face +recordflip-whole-text-transform +select-font-face +show-glyphs-advance +show-text-current-point +smask +smask-text +smp-glyph +subsurface +subsurface-scale +text-antialias-gray +text-antialias-none +text-antialias-subpixel +text-antialias-subpixel-bgr +text-antialias-subpixel-rgb +text-antialias-subpixel-vbgr +text-antialias-subpixel-vrgb +text-glyph-range +text-pattern +text-rotate +text-transform +text-unhinted-metrics +unbounded-operator +user-font-color +user-font-mask +user-font-proxy +user-font-rescale \ No newline at end of file diff --git a/.gitlab-ci/ignore-win32-dib-rgb24.txt b/.gitlab-ci/ignore-win32-dib-rgb24.txt new file mode 100644 index 000000000..74c0f1b26 --- /dev/null +++ b/.gitlab-ci/ignore-win32-dib-rgb24.txt @@ -0,0 +1,117 @@ +a1-clip-fill-rule +big-empty-box +big-empty-triangle +big-little-box +bitmap-font +bug-361 +bug-361 bug-431 +bug-431 +bug-source-cu +clear +clip-device-offset +clip-fill-rule-pixel-aligned +clip-operator +clip-text +coverage-intersecting-triangles +coverage-triangles +culled-glyphs +dash-zero-length +degenerate-path +device-offset +device-offset-positive +extended-blend-mask +fill-and-stroke +fill-empty +fill-missed-stop +finer-grained-fallbacks +font-matrix-translation +ft-show-glyphs-positioning +ft-show-glyphs-table +ft-text-antialias-none +ft-text-vertical-layout-type1 +ft-text-vertical-layout-type3 +get-path-extents +glyph-cache-pressure +gradient-alpha +gradient-constant-alpha +gradient-zero-stops +gradient-zero-stops-mask +halo +halo-transform +image-surface-source +inverse-text +large-font +linear-gradient-one-stop +mask-ctm +mask-ctm mask-surface-ctm +mask-surface-ctm +new-sub-path +nil-surface +operator-clear +operator-source +operator-www +overlapping-boxes +overlapping-glyphs +partial-clip-text-bottom +partial-clip-text-left +partial-clip-text-right +partial-clip-text-top +pass-through +pdf-surface-source +pixman-downscale-best-24 +pixman-rotate +ps-surface-source +pthread-show-text +radial-gradient +radial-gradient-mask +radial-gradient-mask-source +radial-gradient-source +record-neg-extents-bounded +record-neg-extents-unbounded +record-replay-extend-none +record-replay-extend-pad +record-replay-extend-reflect +record-replay-extend-repeat +record-select-font-face +record-text-transform +record1414x-select-font-face +record1414x-text-transform +record2x-select-font-face +record2x-text-transform +record90-select-font-face +record90-text-transform +recordflip-select-font-face +recordflip-text-transform +recordflip-whole-select-font-face +recordflip-whole-text-transform +rel-path +scale-source-surface-paint +select-font-face +set-source +show-glyphs-advance +show-text-current-point +smask +smask-text +smp-glyph +source-surface-scale-paint +subsurface +subsurface-outside-target +subsurface-scale +text-antialias-gray +text-antialias-none +text-antialias-subpixel +text-antialias-subpixel-bgr +text-antialias-subpixel-rgb +text-antialias-subpixel-vbgr +text-antialias-subpixel-vrgb +text-glyph-range +text-pattern +text-rotate +text-transform +text-unhinted-metrics +thin-lines +unbounded-operator +user-font-color +user-font-mask +user-font-proxy +user-font-rescale \ No newline at end of file