dlib/.github/workflows/build_cpp.yml
Adrià Arrufat a76f205bf6
Add webp support (#2565)
* Add BGR(A) to pixel_traits

* add support for reading webp

* Apply Davis' suggestions and fix formatting

* Fix signed/unsigned warning

* Update decoding paths

* update pixel traits documentation

* Add support for writing WebP images

* Simplify image_saver code

* WIP: add tests, PSNR is low but images look good

* Add lossless compression for quality > 100

* Fix build when WebP support is disabled

* Use C++ stream instead of C-style FILE

* Fix indentation

* Use reinterpret_cast instead of C-style cast

* Improve impl::impl_save_webp signature

* Remove empty line

* Use switch statement and clean up code

* Update Copyright and test libwebp on Linux

* Fix formatting in github workflow

* Fix operator== for bgr_alpha_pixel

* Show where the test fails

* Add libwebp to CI for the remaining Linux workflows

* Use filename consistently

* Improve message with wrong pixel type

* Fix tests for WebP images

* Prevent saving images which are too large and improve error messages

* Use max dimension from WebP header directly

* Update documentation, index and release notes

* Update dlib/image_saver/save_webp_abstract.h

Co-authored-by: Martin T. H. Sandsmark <martin.sandsmark@kde.org>
Co-authored-by: Davis E. King <davis685@gmail.com>
2022-04-19 07:52:12 -04:00

129 lines
4.3 KiB
YAML

name: C++
on:
push:
branches:
- master
pull_request:
branches:
- master
env:
config: Release
build_dir: build
defaults:
run:
shell: bash
working-directory: dlib/test
jobs:
ubuntu-latest-gcc-default:
runs-on: 'ubuntu-latest'
steps:
- uses: actions/checkout@v2
- name: Install dependecies
run: |
sudo apt update
sudo apt install libwebp-dev
- name: Configure
run: cmake ${{ github.workspace }}/dlib/test -B ${{ env.build_dir }}
- name: Build just tests
run: cmake --build ${{ env.build_dir }} --config ${{ env.config }} --target dtest --parallel 4
- name: Test
run: ${{ env.build_dir }}/dtest --runall -q
- name: Build examples, etc
run: cmake --build ${{ env.build_dir }} --config ${{ env.config }} --parallel 2
ubuntu-latest-gcc-11:
if: ${{ false }} # disabled until https://github.com/davisking/dlib/issues/2506 has been resolved
runs-on: 'ubuntu-latest'
steps:
- uses: actions/checkout@v2
- name: Install dependecies
run: |
sudo apt update
sudo apt install libwebp-dev
- name: Install gcc 11
run: |
sudo apt install gcc-11 g++-11
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 110 --slave /usr/bin/g++ g++ /usr/bin/g++-11 --slave /usr/bin/gcov gcov /usr/bin/gcov-11
- name: Configure
run: cmake ${{ github.workspace }}/dlib/test -B ${{ env.build_dir }}
- name: Build just tests
run: cmake --build ${{ env.build_dir }} --config ${{ env.config }} --target dtest --parallel 4
- name: Test
run: ${{ env.build_dir }}/dtest --runall -q
- name: Build examples, etc
run: cmake --build ${{ env.build_dir }} --config ${{ env.config }} --parallel 2
ubuntu-latest-clang-default:
runs-on: 'ubuntu-latest'
steps:
- uses: actions/checkout@v2
- name: Install dependecies
run: |
sudo apt update
sudo apt install libwebp-dev
- name: Configure
run: |
export CC=/usr/bin/clang
export CXX=/usr/bin/clang++
cmake ${{ github.workspace }}/dlib/test -B ${{ env.build_dir }}
- name: Build just tests
run: cmake --build ${{ env.build_dir }} --config ${{ env.config }} --target dtest --parallel 4
- name: Test
run: ${{ env.build_dir }}/dtest --runall -q
- name: Build examples, etc
run: cmake --build ${{ env.build_dir }} --config ${{ env.config }} --parallel 2
ubuntu-latest-clang-13:
runs-on: 'ubuntu-latest'
steps:
- uses: actions/checkout@v2
- name: Install dependecies
run: |
sudo apt update
sudo apt install libwebp-dev
- name: Install clang 13
run: |
wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh
sudo ./llvm.sh 13
- name: Configure
run: |
export CC=/usr/bin/clang-13
export CXX=/usr/bin/clang++-13
cmake ${{ github.workspace }}/dlib/test -B ${{ env.build_dir }}
- name: Build just tests
run: cmake --build ${{ env.build_dir }} --config ${{ env.config }} --target dtest --parallel 4
- name: Test
run: ${{ env.build_dir }}/dtest --runall -q
- name: Build examples, etc
run: cmake --build ${{ env.build_dir }} --config ${{ env.config }} --parallel 2
windows-latest:
runs-on: 'windows-latest'
steps:
- uses: actions/checkout@v2
- name: Configure
run: cmake . -B ${{ env.build_dir }}
- name: Build just tests
run: cmake --build ${{ env.build_dir }} --config ${{ env.config }} --target dtest --parallel 4
- name: Test
run: ${{ env.build_dir }}/${{ env.config }}/dtest.exe --runall -q
macos-latest:
runs-on: 'macos-latest'
steps:
- uses: actions/checkout@v2
- name: Configure
# MacOS machines often come with low quality BLAS libraries installed, so don't use those.
run: cmake ${{ github.workspace }}/dlib/test -B ${{ env.build_dir }} -DDLIB_USE_BLAS=0 -DDLIB_USE_LAPACK=0
- name: Build just tests
run: cmake --build ${{ env.build_dir }} --config ${{ env.config }} --target dtest --parallel 4
- name: Test
run: ${{ env.build_dir }}/dtest --runall --no_test_timer -q
- name: Build examples, etc
run: cmake --build ${{ env.build_dir }} --config ${{ env.config }} --parallel 2