Partial migration of cross-compilation from `cross` to Cargo.
This commit is contained in:
parent
0a7a425ea7
commit
cba2b17f57
17
Cargo.toml
17
Cargo.toml
|
|
@ -17,7 +17,22 @@ yaml_serde = "0.10"
|
||||||
zip = "8.3"
|
zip = "8.3"
|
||||||
|
|
||||||
[profile.dev]
|
[profile.dev]
|
||||||
opt-level = 3
|
opt-level = 1
|
||||||
|
|
||||||
[profile.release]
|
[profile.release]
|
||||||
opt-level = 3
|
opt-level = 3
|
||||||
|
|
||||||
|
[target.aarch64-unknown-linux-gnu]
|
||||||
|
cc = "aarch64-linux-gnu-gcc"
|
||||||
|
cxx = "aarch64-linux-gnu-g++"
|
||||||
|
ar = "aarch64-linux-gnu-ar"
|
||||||
|
# ranlib = "aarch64-linux-gnu-ranlib"
|
||||||
|
linker = "aarch64-linux-gnu-gcc"
|
||||||
|
|
||||||
|
|
||||||
|
[target.arm-unknown-linux-gnueabihf]
|
||||||
|
cc = "arm-linux-gnueabihf-gcc"
|
||||||
|
cxx = "arm-linux-gnueabihf-g++"
|
||||||
|
ar = "arm-linux-gnueabihf-ar"
|
||||||
|
# ranlib = "arm-linux-gnueabihf-ranlib"
|
||||||
|
linker = "arm-linux-gnueabihf-gcc"
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
[build]
|
|
||||||
default-target = "aarch64-unknown-linux-gnu" # use this target if none is explicitly provided
|
|
||||||
pre-build = [ # additional commands to run prior to building the package
|
|
||||||
"dpkg --add-architecture $CROSS_DEB_ARCH",
|
|
||||||
"apt update",
|
|
||||||
"apt --assume-yes install apt-utils:$CROSS_DEB_ARCH",
|
|
||||||
"apt --assume-yes install libsdl3-dev:$CROSS_DEB_ARCH"
|
|
||||||
]
|
|
||||||
31
readme.md
31
readme.md
|
|
@ -6,21 +6,28 @@
|
||||||
|
|
||||||
## Install ARM toolchains:
|
## Install ARM toolchains:
|
||||||
|
|
||||||
```
|
```bash
|
||||||
cargo install cross
|
$ rustup target add aarch64-unknown-linux-gnu
|
||||||
rustup target add aarch64-unknown-linux-gnu # 64-bit Pi OS
|
$ rustup target add arm-unknown-linux-gnueabihf
|
||||||
rustup target add armv7-unknown-linux-gnueabihf # 32-bit Pi 2/3/4 OS
|
|
||||||
rustup target add arm-unknown-linux-gnueabihf # ARMv6 (Pi Zero/1)
|
|
||||||
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get install gcc-aarch64-linux-gnu gcc-arm-linux-gnueabihf
|
$ sudo dpkg --add-architecture arm64
|
||||||
|
$ sudo dpkg --add-architecture armhf
|
||||||
|
|
||||||
|
$ sudo apt update
|
||||||
|
$ sudo apt-get install gcc-aarch64-linux-gnu gcc-arm-linux-gnueabihf \
|
||||||
|
libc6-arm64-cross libc6-dev-arm64-cross gcc-aarch64-linux-gnu \
|
||||||
|
libc6-armhf-cross libc6-dev-armhf-cross gcc-arm-linux-gnueabihf \
|
||||||
|
libssl-dev libssl-dev:arm64 libsdl3-dev:arm64 libssl-dev:armhf libsdl3-dev:armhf
|
||||||
```
|
```
|
||||||
|
|
||||||
## Cross-compile
|
## Cross-compile
|
||||||
|
|
||||||
```
|
ARM64
|
||||||
# 2) Build
|
```bash
|
||||||
~/.cargo/bin/cross build --target aarch64-unknown-linux-gnu --release
|
$ export PKG_CONFIG_SYSROOT_DIR=/usr/aarch64-linux-gnu/
|
||||||
~/.cargo/bin/cross build --target armv7-unknown-linux-gnueabihf --release
|
$ cargo build --target aarch64-unknown-linux-gnu --release
|
||||||
~/.cargo/bin/cross build --target arm-unknown-linux-gnueabihf --release
|
|
||||||
|
$ export PKG_CONFIG_SYSROOT_DIR=/usr/arm-linux-gnueabihf/
|
||||||
|
$ cargo build --target arm-unknown-linux-gnueabihf --release
|
||||||
```
|
```
|
||||||
Loading…
Reference in New Issue