simba 0.4.0

SIMD algebra for Rust
Documentation
version: 2.1

executors:
  rust-nightly-executor:
    docker:
        - image: rustlang/rust:nightly
  rust-executor:
    docker:
        - image: rust:latest


jobs:
  check-fmt:
    executor: rust-executor
    steps:
      - checkout
      - run:
          name: install rustfmt
          command: rustup component add rustfmt
      - run:
          name: check formatting
          command: cargo fmt -- --check
  build-native:
    executor: rust-executor
    steps:
      - checkout
      - run:
          name: build --no-default-feature
          command: cargo build --no-default-features;
      - run:
          name: build (default features)
          command: cargo build;
      - run:
          name: build --features wide
          command: cargo build --features wide
      - run:
          name: build --features partial_fixed_point_support
          command: cargo build --features partial_fixed_point_support
  build-wasm:
    executor: rust-executor
    steps:
      - checkout
      - run:
          name: install cargo-web
          command: cargo install -f cargo-web;
      - run:
          name: build
          command: cargo web build --verbose --target wasm32-unknown-unknown;
  build-no-std:
    executor: rust-nightly-executor
    steps:
      - checkout
      - run:
          name: install xargo
          command: rustup component add rust-src; cargo install -f xargo;
      - run:
          name: build
          command: xargo build --verbose --no-default-features --target=x86_64-unknown-linux-gnu;
      - run:
          name: build --features libm
          command: xargo build --verbose --no-default-features --features libm --target=x86_64-unknown-linux-gnu;
  build-nightly:
    executor: rust-nightly-executor
    steps:
      - checkout
      - run:
          name: build --features packed_simd
          command: cargo build --features packed_simd


workflows:
  version: 2
  build:
    jobs:
      - check-fmt
      - build-native:
          requires:
            - check-fmt
      - build-wasm:
          requires:
            - check-fmt
      - build-no-std:
          requires:
            - check-fmt
      - build-nightly:
          requires:
            - check-fmt