Skip to content

Commit 86c2fa1

Browse files
authored
Add cross compilation (#136)
Use cross to cross compile for aarch64-unknown-linux-gnu target.
1 parent f90db10 commit 86c2fa1

File tree

2 files changed

+43
-20
lines changed

2 files changed

+43
-20
lines changed

.github/workflows/rust.yml

Lines changed: 38 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,33 +2,51 @@ name: Rust
22

33
on:
44
push:
5-
branches: [ master ]
5+
branches: [master]
66
pull_request:
7-
branches: [ master ]
7+
branches: [master]
88

99
env:
1010
CARGO_TERM_COLOR: always
1111

1212
jobs:
1313
build:
14-
1514
runs-on: ubuntu-latest
1615

1716
steps:
18-
- uses: actions/checkout@v3
19-
with:
20-
submodules: recursive
21-
- name: Install dependencies
22-
run: sudo apt-get update && sudo apt-get install libdbus-1-dev
23-
- name: Install Rust 1.75
24-
run: rustup set profile default && rustup default 1.75.0
25-
- name: Check code formatting
26-
run: cargo fmt -- --check
27-
- name: Build
28-
run: cargo build --examples --bins --quiet
29-
- name: Build documentation
30-
run: cargo doc --no-deps --quiet
31-
- name: Run tests
32-
run: cargo test --quiet
33-
- name: Code analysis
34-
run: cargo clippy --quiet
17+
- uses: actions/checkout@v4
18+
with:
19+
submodules: recursive
20+
- uses: cargo-bins/cargo-binstall@main
21+
- uses: dtolnay/rust-toolchain@stable
22+
with:
23+
toolchain: 1.75
24+
components: clippy rustfmt
25+
26+
- name: Install dependencies
27+
run: |
28+
sudo apt-get update && \
29+
sudo apt-get install -y \
30+
podman \
31+
qemu-user-static\
32+
pkg-config \
33+
libdbus-1-dev && \
34+
cargo binstall --no-confirm cross
35+
36+
- name: Check code formatting
37+
run: cargo fmt -- --check
38+
39+
- name: Build for x86_64-unknown-linux-gnu
40+
run: CROSS_CONTAINER_ENGINE=podman cross build --target x86_64-unknown-linux-gnu --examples --bins
41+
42+
- name: Build for aarch64-unknown-linux-gnu
43+
run: CROSS_CONTAINER_ENGINE=podman cross build --target aarch64-unknown-linux-gnu --examples --bins
44+
45+
- name: Build documentation
46+
run: cargo doc --no-deps --quiet
47+
48+
- name: Run tests
49+
run: cargo test --quiet
50+
51+
- name: Code analysis
52+
run: cargo clippy --quiet

Cross.toml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
[build]
2+
pre-build = [
3+
"dpkg --add-architecture $CROSS_DEB_ARCH",
4+
"apt update && apt install -y pkg-config:$CROSS_DEB_ARCH libdbus-1-dev:$CROSS_DEB_ARCH",
5+
]

0 commit comments

Comments
 (0)