Edit

kc3-lang/freetype/.gitlab-ci.yml

Branch :

  • Show log

    Commit

  • Author : AnuthaDev
    Date : 2021-07-20 21:22:14
    Hash : 28c2d7f3
    Message : * .gitlab-ci.yml: Fixed cmake build, using correct options.

  • .gitlab-ci.yml
  • 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:v14-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 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:
        # 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"
    
    
    # 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
    
        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
    
        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