apr 0.4.3

Rust bindings for Apache Portable Runtime
Documentation
name: Rust

on:
  push:
    branches: [ "master" ]
  pull_request:
    branches: [ "master" ]

env:
  CARGO_TERM_COLOR: always

jobs:
  build:

    strategy:
      matrix:
        os: [ubuntu-latest, macos-latest, windows-latest]

    runs-on: ${{ matrix.os }}

    steps:
    - uses: actions/checkout@v6
    - name: Install apr
      run: |
        sudo apt -y update
        sudo apt install -y libapr1-dev libaprutil1-dev libutf8proc-dev
      if: "matrix.os == 'ubuntu-latest'"
    - name: Install apr (Mac OS)
      run: |
        brew install apr-util apr pkg-config utf8proc
        echo "$(brew --prefix)/opt/pkg-config/bin" >> $GITHUB_PATH
        echo "PKG_CONFIG_PATH=/opt/homebrew/opt/apr-util/lib/pkgconfig:/opt/homebrew/opt/apr/lib/pkgconfig" >> $GITHUB_ENV
        pkg-config --list-all
      if: "matrix.os == 'macos-latest'"
    - name: Install apr (Windows)
      run: |
        vcpkg install apr:x64-windows apr-util:x64-windows
        $prefix = "$env:VCPKG_INSTALLATION_ROOT\installed\x64-windows"
        echo "SYSTEM_DEPS_APR_1_NO_PKG_CONFIG=1" >> $env:GITHUB_ENV
        echo "SYSTEM_DEPS_APR_1_INCLUDE=$prefix\include" >> $env:GITHUB_ENV
        echo "SYSTEM_DEPS_APR_1_SEARCH_NATIVE=$prefix\lib" >> $env:GITHUB_ENV
        echo "SYSTEM_DEPS_APR_1_LIB=libapr-1" >> $env:GITHUB_ENV
        echo "SYSTEM_DEPS_APR_UTIL_1_NO_PKG_CONFIG=1" >> $env:GITHUB_ENV
        echo "SYSTEM_DEPS_APR_UTIL_1_INCLUDE=$prefix\include" >> $env:GITHUB_ENV
        echo "SYSTEM_DEPS_APR_UTIL_1_SEARCH_NATIVE=$prefix\lib" >> $env:GITHUB_ENV
        echo "SYSTEM_DEPS_APR_UTIL_1_LIB=libaprutil-1" >> $env:GITHUB_ENV
        echo "$prefix\bin" >> $env:GITHUB_PATH
      if: "matrix.os == 'windows-latest'"
    - name: Build
      run: cargo build --verbose
    - name: Run tests
      run: cargo test --verbose
    - name: Run tests with all features
      run: cargo test --all-features --verbose
      if: "matrix.os != 'windows-latest'"
    - name: Build without std (no_std check)
      run: cargo build --no-default-features --verbose
    - name: Test without std (no_std check)
      run: cargo test --no-default-features --verbose