Skip to content

Handle platforms where c_int is not i32 #215

Handle platforms where c_int is not i32

Handle platforms where c_int is not i32 #215

Workflow file for this run

name: CI
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
target:
- thumbv7em-none-eabi
- thumbv6m-none-eabi # like the Cortex-M0+
- x86_64-unknown-linux-gnu
- x86_64-pc-windows-msvc
steps:
- name: Install build dependencies
shell: bash
run: |
env && pwd && sudo apt-get update -y -qq && sudo apt-get install -y -qq llvm libc6-dev-i386 libclang-dev
- uses: fiam/arm-none-eabi-gcc@v1
with:
release: "9-2020-q2"
- name: Install rust
run: rustup show
- uses: actions/checkout@v3
- name: Check
run: |
cargo check --workspace --all-targets
cargo check --workspace --all-targets --all-features
cargo check --workspace --all-targets --no-default-features
cargo check --workspace --all-targets --no-default-features --features serde
cargo check --workspace --all-targets --no-default-features --features dir-entry-path
- name: Build
run: cargo build --workspace --release --verbose
- name: Run clippy
if: matrix.target == 'x86_64-unknown-linux-gnu'
run: cargo clippy --workspace --all-features --all-targets -- --deny warnings
- name: Check code format
if: matrix.target == 'x86_64-unknown-linux-gnu'
run: cargo fmt --all -- --check
- name: Run tests
if: matrix.target == 'x86_64-unknown-linux-gnu'
run: >
cargo test --workspace &&
cargo test --workspace --release
- name: Check documentation
if: matrix.target == 'x86_64-unknown-linux-gnu'
run: RUSTDOCFLAGS="-D warnings" cargo doc --no-deps --workspace
build-avr:
runs-on: ubuntu-latest
steps:
- name: Install build dependencies
shell: bash
run: |
env && pwd && sudo apt-get update -y -qq && sudo apt-get install -y -qq llvm gcc-avr avr-libc libclang-dev
- name: Install rust
run: rustup toolchain install --profile minimal --component=rust-src nightly
- uses: actions/checkout@v3
- name: Configure target
run: |
cat <<EOT > avr-atmega328p.json
{
"arch": "avr",
"atomic-cas": false,
"cpu": "atmega328p",
"data-layout": "e-P1-p:16:8-i8:8-i16:8-i32:8-i64:8-f32:8-f64:8-n8-a:8",
"eh-frame-header": false,
"exe-suffix": ".elf",
"late-link-args": {
"gcc": [
"-lgcc"
]
},
"linker": "avr-gcc",
"llvm-target": "avr-unknown-unknown",
"max-atomic-width": 8,
"no-default-libraries": false,
"pre-link-args": {
"gcc": [
"-mmcu=atmega328p"
]
},
"relocation-model": "static",
"target-c-int-width": "16",
"target-pointer-width": "16"
}
EOT
- name: Patch delog
run: echo 'delog = { version = "0.1.6", git = "https://github.com/LechevSpace/delog.git", rev = "e83f3fd" }' >> Cargo.toml
- name: Build avr
run: cargo +nightly build -Z build-std=core --target=./avr-atmega328p.json --workspace --release