libwebp-sys2 0.2.0

A handwritten raw interface to libwebp
Documentation
name: test

on: [push, pull_request]

jobs:
  test:
    runs-on: ubuntu-24.04

    strategy:
      matrix:
        rust: [stable]
        webp: [0.4.4, 0.5.2, 1.0.3, 1.1.0, 1.2.0, 1.4.0, 1.5.0]
        webp_from: ["build"]
        common_features: ["std,"]
        include:
        - rust: stable
          webp: 1.3.2
          webp_from: distr
          common_features: std,
        - rust: stable
          webp: 1.5.0
          webp_from: bundled
          common_features: std,
        - rust: 1.85.0
          webp: 1.5.0
          webp_from: build
          common_features: std,
        - rust: beta
          webp: 1.5.0
          webp_from: build
          common_features: std,
        - rust: nightly
          webp: 1.5.0
          webp_from: build
          common_features: std,
        - rust: nightly
          webp: 1.5.0
          webp_from: build
          common_features: std,extern-types,

    steps:
    - uses: actions/checkout@v4
      with:
        submodules: recursive
    - name: set up Rust
      run: |
        rustup set profile minimal
        rustup install ${{ matrix.rust }}
        rustup default ${{ matrix.rust }}
        rustup component add rustfmt
    - name: Install libwebp
      run: sudo apt-get update && sudo apt-get install libwebp-dev -y;
      if: matrix.webp_from == 'distr'
    - name: Install libwebp
      run: |
        wget https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${{ matrix.webp }}.tar.gz
        tar zxf libwebp-${{ matrix.webp }}.tar.gz
        cd libwebp-${{ matrix.webp }}
        ./configure --enable-libwebpmux --enable-libwebpdemux
        make
        sudo make install
        echo LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV
        echo PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH" >> $GITHUB_ENV
      if: ${{ matrix.webp_from == 'build' }}
    - name: Set __LIBWEBP_SYS_FORBID_BUILD
      run: echo __LIBWEBP_SYS_FORBID_BUILD=1 >> $GITHUB_ENV
      if: ${{ matrix.webp_from != 'bundled' }}
    - name: Set up lockfile
      run: cp Cargo.lock.msrv Cargo.lock
      if: matrix.rust == '1.85.0'
    - name: Test 0.4
      run: |
        cargo test --all --no-default-features --features "${{ matrix.common_features }}"
        cargo test --all --no-default-features --features "${{ matrix.common_features }}demux"
        cargo test --all --no-default-features --features "${{ matrix.common_features }}mux"
        cargo test --all --no-default-features --features "${{ matrix.common_features }}demux,mux"
    - name: Test 0.5
      run: |
        cargo test --all --no-default-features --features "${{ matrix.common_features }}0_5"
        cargo test --all --no-default-features --features "${{ matrix.common_features }}0_5,demux"
        cargo test --all --no-default-features --features "${{ matrix.common_features }}0_5,mux"
        cargo test --all --no-default-features --features "${{ matrix.common_features }}0_5,demux,mux"
      if: matrix.webp >= '0.5'
    - name: Test 0.6
      run: |
        cargo test --all --no-default-features --features "${{ matrix.common_features }}0_6"
        cargo test --all --no-default-features --features "${{ matrix.common_features }}0_6,demux"
        cargo test --all --no-default-features --features "${{ matrix.common_features }}0_6,mux"
        cargo test --all --no-default-features --features "${{ matrix.common_features }}0_6,demux,mux"
      if: matrix.webp >= '0.6'
    - name: Test 1.1
      run: |
        cargo test --all --no-default-features --features "${{ matrix.common_features }}1_1"
        cargo test --all --no-default-features --features "${{ matrix.common_features }}1_1,demux"
        cargo test --all --no-default-features --features "${{ matrix.common_features }}1_1,mux"
        cargo test --all --no-default-features --features "${{ matrix.common_features }}1_1,demux,mux"
      if: matrix.webp >= '1.1'
    - name: Test 1.2
      run: |
        cargo test --all --no-default-features --features "${{ matrix.common_features }}1_2"
        cargo test --all --no-default-features --features "${{ matrix.common_features }}1_2,demux"
        cargo test --all --no-default-features --features "${{ matrix.common_features }}1_2,mux"
        cargo test --all --no-default-features --features "${{ matrix.common_features }}1_2,demux,mux"
      if: matrix.webp >= '1.2'
    - name: Test 1.4
      run: |
        cargo test --all --no-default-features --features "${{ matrix.common_features }}1_4"
        cargo test --all --no-default-features --features "${{ matrix.common_features }}1_4,demux"
        cargo test --all --no-default-features --features "${{ matrix.common_features }}1_4,mux"
        cargo test --all --no-default-features --features "${{ matrix.common_features }}1_4,demux,mux"
      if: matrix.webp >= '1.4'
    - name: Test 1.5
      run: |
        cargo test --all --no-default-features --features "${{ matrix.common_features }}1_5"
        cargo test --all --no-default-features --features "${{ matrix.common_features }}1_5,demux"
        cargo test --all --no-default-features --features "${{ matrix.common_features }}1_5,mux"
        cargo test --all --no-default-features --features "${{ matrix.common_features }}1_5,demux,mux"
      if: matrix.webp >= '1.5'
    - name: Test static builds
      run: |
        cargo test --all --no-default-features --features "${{ matrix.common_features }}1_5,static"
        cargo test --all --no-default-features --features "${{ matrix.common_features }}1_5,static,demux"
        cargo test --all --no-default-features --features "${{ matrix.common_features }}1_5,static,mux"
        cargo test --all --no-default-features --features "${{ matrix.common_features }}1_5,static,demux,mux"
      if: matrix.webp_from == 'bundled'
    - name: Test __doc_cfg
      run: |
        cargo doc --all --no-default-features --features "${{ matrix.common_features }}__doc_cfg"
      if: matrix.rust == 'nightly'
    - name: Check format
      run: |
        rustup component add rustfmt-preview
        cargo fmt --all -- --check
      if: matrix.rust == 'stable'