cyclors 0.4.0

Low-level API for the native CycloneDDS bindings (libddsc-sys).
Documentation
name: CI

on:
  push:
    branches: [master]
  pull_request:
    types: [ready_for_review]
    branches: [master]
  workflow_dispatch:

env:
  CARGO_TERM_COLOR: always

jobs:
  build:
    strategy:
      fail-fast: false
      matrix:
        os:
          - "ubuntu-latest"
          - "windows-latest"
          - "macos-latest"
          - "ubuntu-24.04-arm"
    runs-on: ["${{ matrix.os }}"]

    steps:
      - uses: actions/checkout@v6
        with:
          submodules: recursive
      - name: Install ACL and SSL
        if: startsWith(matrix.os,'ubuntu')
        run: sudo apt-get -y install acl-dev libssl-dev
      - name: Install LLVM toolchain
        if: startsWith(matrix.os,'macos')
        run: |
          brew install llvm@19
          ls /opt/homebrew/opt/llvm@19/bin
          echo "/opt/homebrew/opt/llvm@19/bin" >> $GITHUB_PATH
      - name: Code format check
        run: cargo fmt --check
      - name: Clippy check
        run: cargo clippy -- -D warnings
      - name: Build (default features)
        run: cargo build --verbose
      - name: Build (with Iceoryx)
        if: ${{ ! startsWith(matrix.os,'windows') }}
        run: cargo build --features iceoryx --verbose
      - name: Build (with symbol prefixing)
        run: cargo build --features prefix_symbols --verbose
      - name: Build (with dds security)
        if: ${{ ! startsWith(matrix.os,'windows') }}
        run: cargo build --features dds_security --verbose
      - name: Run tests (default features)
        run: cargo test --verbose
      - name: Run tests (with Iceoryx)
        if: ${{ ! startsWith(matrix.os,'windows') }}
        run: cargo test --features iceoryx --verbose
      - name: Run tests (with symbol prefixing)
        run: cargo test --features prefix_symbols --verbose
      - name: Run tests (with dds security)
        if: ${{ ! startsWith(matrix.os,'windows') }}
        run: cargo test --features dds_security --verbose