ca44a236a0
Fetch current list of valid CAs from Windows Update and manually import them to trusted datastore. This action is required to make downloads work from sites that need recent Let's Encrypt ISRG Root X1 certificate.
202 lines
5.7 KiB
YAML
202 lines
5.7 KiB
YAML
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 windows common:
|
|
# See
|
|
# https://gitlab.freedesktop.org/gstreamer/gst-ci/container_registry/213
|
|
image: 'registry.freedesktop.org/gstreamer/gst-ci/amd64/windows:2021-09-09.0-master'
|
|
stage: 'build'
|
|
tags:
|
|
- 'docker'
|
|
- 'windows'
|
|
- '1809'
|
|
- 'gstreamer-windows'
|
|
|
|
.build linux common:
|
|
# See
|
|
# https://gitlab.freedesktop.org/freetype/docker-images/container_registry/20896
|
|
image: 'registry.freedesktop.org/freetype/docker-images/debian:latest'
|
|
stage: 'build'
|
|
|
|
.build macos common:
|
|
stage: 'build'
|
|
tags:
|
|
- 'gst-macos-11.1'
|
|
|
|
.build windows meson:
|
|
extends: '.build windows common'
|
|
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:
|
|
# Update RootCAs in order to access to some sites.
|
|
- certutil -generateSSTFromWU "C:\roots.sst"
|
|
- Import-Certificate -CertStoreLocation "Cert:\LocalMachine\Root" "C:\roots.sst"
|
|
# Make sure meson is up to date, so we don't need to rebuild the image
|
|
# with each release.
|
|
- pip3 install meson==0.59.1
|
|
- pip3 install -U 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"
|
|
|
|
|
|
# Format of job names:
|
|
# <OS> <Build-Tool> <Build-Params> <Architecture>
|
|
|
|
|
|
# Windows jobs
|
|
windows meson vs2017 amd64:
|
|
extends: '.build windows meson'
|
|
variables:
|
|
ARCH: 'amd64'
|
|
|
|
windows meson vs2017 x86:
|
|
extends: '.build windows meson'
|
|
variables:
|
|
ARCH: 'x86'
|
|
|
|
|
|
# Linux Jobs
|
|
# Jobs with "libs" in the name force enable libraries.
|
|
# They are disabled in rest of the jobs.
|
|
linux autotools:
|
|
extends: '.build linux common'
|
|
script: |
|
|
./autogen.sh
|
|
./configure --with-brotli=no \
|
|
--with-bzip2=no \
|
|
--with-harfbuzz=no \
|
|
--with-png=no \
|
|
--with-zlib=no \
|
|
CC=gcc
|
|
|
|
make -j$(nproc) && make install
|
|
|
|
linux autotools libs:
|
|
extends: '.build linux common'
|
|
script: |
|
|
./autogen.sh
|
|
./configure --with-brotli=yes \
|
|
--with-bzip2=yes \
|
|
--with-harfbuzz=yes \
|
|
--with-png=yes \
|
|
--with-zlib=yes \
|
|
CC=gcc
|
|
|
|
make -j$(nproc) && make install
|
|
|
|
linux autotools libs clang:
|
|
extends: '.build linux common'
|
|
script: |
|
|
./autogen.sh
|
|
./configure --with-brotli=yes \
|
|
--with-bzip2=yes \
|
|
--with-harfbuzz=yes \
|
|
--with-png=yes \
|
|
--with-zlib=yes \
|
|
CC=clang
|
|
|
|
make -j$(nproc) && make install
|
|
|
|
linux meson:
|
|
extends: '.build linux common'
|
|
script: |
|
|
meson setup build -Dbrotli=disabled \
|
|
-Dbzip2=disabled \
|
|
-Dharfbuzz=disabled \
|
|
-Dpng=disabled \
|
|
-Dzlib=disabled
|
|
|
|
meson compile --verbose -C build
|
|
meson install -C build
|
|
|
|
linux meson libs:
|
|
extends: '.build linux common'
|
|
script: |
|
|
meson setup build -Dbrotli=enabled \
|
|
-Dbzip2=enabled \
|
|
-Dharfbuzz=disabled \
|
|
-Dpng=disabled \
|
|
-Dzlib=disabled
|
|
|
|
meson compile --verbose -C build
|
|
meson install -C build
|
|
|
|
linux cmake:
|
|
extends: '.build linux common'
|
|
script: |
|
|
cmake -B build -D FT_DISABLE_BROTLI=TRUE \
|
|
-D FT_DISABLE_BZIP2=TRUE \
|
|
-D FT_DISABLE_HARFBUZZ=TRUE \
|
|
-D FT_DISABLE_PNG=TRUE \
|
|
-D FT_DISABLE_ZLIB=TRUE
|
|
|
|
cmake --build build --target install
|
|
|
|
linux cmake libs:
|
|
extends: '.build linux common'
|
|
script: |
|
|
cmake -B build -D FT_REQUIRE_BROTLI=TRUE \
|
|
-D FT_REQUIRE_BZIP2=TRUE \
|
|
-D FT_REQUIRE_HARFBUZZ=TRUE \
|
|
-D FT_REQUIRE_PNG=TRUE \
|
|
-D FT_REQUIRE_ZLIB=TRUE
|
|
|
|
cmake --build build --target install
|
|
|
|
macos autotools:
|
|
extends: '.build macos common'
|
|
before_script:
|
|
- '/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"'
|
|
script:
|
|
- brew install autoconf automake libtool
|
|
- ./autogen.sh
|
|
- ./configure
|
|
- 'make -j$(sysctl -n hw.logicalcpu)'
|
|
- make install
|
|
|
|
macos autotools clang:
|
|
extends: '.build macos common'
|
|
before_script:
|
|
- '/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"'
|
|
script:
|
|
- brew install autoconf automake libtool
|
|
- ./autogen.sh
|
|
- './configure CC=clang'
|
|
- 'make -j$(sysctl -n hw.logicalcpu)'
|
|
- make install
|
|
|
|
macos meson:
|
|
extends: '.build macos common'
|
|
script:
|
|
- pip3 install --upgrade pip
|
|
- pip3 install -U meson
|
|
- pip3 install --upgrade certifi
|
|
- pip3 install -U ninja
|
|
|
|
- meson setup build
|
|
- meson compile --verbose -C build
|
|
- sudo meson install -C build
|