gxhash 3.5.0

GxHash non-cryptographic algorithm
Documentation
name: Cross Compile

on:
  # Trigger when merged on main
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]
  # Manual trigger
  workflow_dispatch:

env:
  CARGO_TERM_COLOR: always
  RUSTFLAGS: "-C target-feature=+aes,+vaes,+avx2"

jobs:

  build_x86:
    name: Build

    strategy:
      fail-fast: false
      matrix:
        include:
        - from: ubuntu-latest
          target: "aarch64-apple-darwin"
          allow_failure_hybrid: true
        - from: ubuntu-latest
          target: "aarch64-unknown-linux-gnu"
          allow_failure_hybrid: true
        - from: ubuntu-latest
          target: "aarch64-unknown-linux-musl"
          allow_failure_hybrid: true
        - from: ubuntu-latest
          target: "i686-unknown-linux-gnu"
          allow_failure_hybrid: true
        - from: ubuntu-latest
          target: "x86_64-pc-windows-msvc"
          allow_failure_hybrid: true # Supposed to work as hybrid but not tested yet
        - from: ubuntu-latest
          target: "x86_64-unknown-linux-gnu"
          allow_failure_hybrid: false
        - from: macos-latest
          target: "aarch64-apple-darwin"
          allow_failure_hybrid: true
        - from: macos-latest
          target: "x86_64-unknown-linux-gnu"
          allow_failure_hybrid: true # Supposed to work as hybrid but not tested yet

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

    steps:
    - uses: actions/checkout@v3

    - name: Install target
      run: rustup target add ${{ matrix.target }}

    - name: Build
      run: cargo build --release --target ${{ matrix.target }}

    - name: Switch to nightly rust
      run: rustup default nightly

    - name: Build Hybrid
      continue-on-error: ${{ matrix.allow_failure_hybrid }}
      run: cargo build --release --features hybrid --target ${{ matrix.target }}