Handle platforms where c_int is not i32 #189
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 --all-targets | |
cargo check --all-targets --all-features | |
cargo check --all-targets --no-default-features | |
cargo check --all-targets --no-default-features --features serde | |
cargo check --all-targets --no-default-features --features dir-entry-path | |
- name: Build | |
run: cargo build --release --verbose | |
- name: Run tests | |
if: matrix.target == 'x86_64-unknown-linux-gnu' | |
run: > | |
cargo test && | |
cargo test --release | |
- name: Build Documentation | |
run: cargo doc --no-deps | |
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 --release |