46 lines
805 B
Bash
Executable File
46 lines
805 B
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
ARMV7="armv7-unknown-linux-gnueabihf"
|
|
I686="i686-unknown-linux-gnu"
|
|
|
|
TARGETS=( "${ARMV7}" "${I686}" )
|
|
|
|
if [ -z ${REPO_URL} ]; then
|
|
echo "Missing REPO_URL, exiting" >&2
|
|
exit 1
|
|
fi
|
|
|
|
if [ -z ${BIN_NAME} ]; then
|
|
echo "Missing BIN_NAME, exiting" >&2
|
|
exit 1
|
|
fi
|
|
|
|
source $HOME/.cargo/env
|
|
|
|
cat >>$HOME/.cargo/config <<EOF
|
|
[build]
|
|
rustflags = ["-C", "target-feature=+crt-static", "-C", "strip=symbols"]
|
|
|
|
[target."${ARMV7}"]
|
|
linker = "arm-linux-gnueabihf-gcc"
|
|
|
|
[target."${I686}"]
|
|
linker = "i686-linux-gnu-gcc"
|
|
EOF
|
|
|
|
git clone ${REPO_URL} output
|
|
|
|
cd output
|
|
|
|
for target in "${TARGETS[@]}"; do
|
|
cargo build --release --target "${target}"
|
|
BIN_PATH="target/${target}/release/${BIN_NAME}"
|
|
mv "${BIN_PATH}" "/opt/build/${target}_${BIN_NAME}"
|
|
done
|
|
|
|
cd /opt/build
|
|
|
|
rm -rf output
|