Add CI job for avr target

This commit is contained in:
Robin Krahl
2024-10-22 16:58:41 +02:00
parent 0d753af154
commit 0988ecd8a8
+50
View File
@@ -62,3 +62,53 @@ jobs:
- 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