forked from hush/silentdragonlite-cli
![zcash@adityapk.com](/assets/img/avatar_default.png)
2 changed files with 103 additions and 0 deletions
@ -0,0 +1,26 @@ |
|||||
|
FROM rust:1.38 |
||||
|
LABEL Description="Rust compile env for Linux + Windows (cross)" |
||||
|
|
||||
|
RUN apt update |
||||
|
RUN apt install -y build-essential mingw-w64 gcc-aarch64-linux-gnu gcc-arm-linux-gnueabihf |
||||
|
|
||||
|
RUN rustup target add x86_64-pc-windows-gnu |
||||
|
RUN rustup target add aarch64-unknown-linux-gnu |
||||
|
RUN rustup target add armv7-unknown-linux-gnueabihf |
||||
|
|
||||
|
# Append the linker to the cargo config for Windows cross compile |
||||
|
RUN echo "[target.x86_64-pc-windows-gnu]" >> /usr/local/cargo/config && \ |
||||
|
echo "linker = '/usr/bin/x86_64-w64-mingw32-gcc'" >> /usr/local/cargo/config |
||||
|
|
||||
|
RUN echo "[target.aarch64-unknown-linux-gnu]" >> /usr/local/cargo/config && \ |
||||
|
echo "linker = '/usr/bin/aarch64-linux-gnu-gcc'" >> /usr/local/cargo/config |
||||
|
|
||||
|
RUN echo "[target.armv7-unknown-linux-gnueabihf]" >> /usr/local/cargo/config && \ |
||||
|
echo "linker = '/usr/bin/arm-linux-gnueabihf-gcc-5'" >> /usr/local/cargo/config |
||||
|
|
||||
|
ENV CC_x86_64_unknown_linux_musl="gcc" |
||||
|
ENV CC_aarch64_unknown_linux_gnu="aarch64-linux-gnu-gcc" |
||||
|
ENV CC_armv7_unknown_linux_gnueabhihf="arm-linux-gnueabihf-gcc-5" |
||||
|
|
||||
|
RUN cp /usr/x86_64-w64-mingw32/lib/crt2.o /usr/local/rustup/toolchains/1.38.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-pc-windows-gnu/lib/crt2.o |
||||
|
|
@ -0,0 +1,77 @@ |
|||||
|
#!/bin/bash |
||||
|
# This script depends on a docker image already being built |
||||
|
# To build it, |
||||
|
# cd docker |
||||
|
# docker build --tag rustbuild:latest . |
||||
|
|
||||
|
POSITIONAL=() |
||||
|
while [[ $# -gt 0 ]] |
||||
|
do |
||||
|
key="$1" |
||||
|
|
||||
|
case $key in |
||||
|
-v|--version) |
||||
|
APP_VERSION="$2" |
||||
|
shift # past argument |
||||
|
shift # past value |
||||
|
;; |
||||
|
*) # unknown option |
||||
|
POSITIONAL+=("$1") # save it in an array for later |
||||
|
shift # past argument |
||||
|
;; |
||||
|
esac |
||||
|
done |
||||
|
set -- "${POSITIONAL[@]}" # restore positional parameters |
||||
|
|
||||
|
if [ -z $APP_VERSION ]; then echo "APP_VERSION is not set"; exit 1; fi |
||||
|
|
||||
|
# Clean everything first |
||||
|
#cargo clean |
||||
|
|
||||
|
# Compile for mac directly |
||||
|
#cargo build --release |
||||
|
|
||||
|
# For Windows and Linux, build via docker |
||||
|
docker run --rm -v $(pwd)/:/opt/zecwallet-light-cli rustbuild:latest bash -c "cd /opt/zecwallet-light-cli && cargo build --release && cargo build --release --target x86_64-pc-windows-gnu" |
||||
|
|
||||
|
# Now sign and zip the binaries |
||||
|
#macOS |
||||
|
rm -rf target/macOS-zecwallet-cli-v$APP_VERSION |
||||
|
mkdir -p target/macOS-zecwallet-cli-v$APP_VERSION |
||||
|
cp target/release/zecwallet-cli target/macOS-zecwallet-cli-v$APP_VERSION/ |
||||
|
gpg --batch --output target/macOS-zecwallet-cli-v$APP_VERSION/zecwallet-cli.sig --detach-sig target/macOS-zecwallet-cli-v$APP_VERSION/zecwallet-cli |
||||
|
cd target |
||||
|
cd macOS-zecwallet-cli-v$APP_VERSION |
||||
|
gsha256sum zecwallet-cli > sha256sum.txt |
||||
|
cd .. |
||||
|
zip -r macOS-zecwallet-cli-v$APP_VERSION.zip macOS-zecwallet-cli-v$APP_VERSION |
||||
|
cd .. |
||||
|
|
||||
|
|
||||
|
#Linux |
||||
|
rm -rf target/linux-zecwallet-cli-v$APP_VERSION |
||||
|
mkdir -p target/linux-zecwallet-cli-v$APP_VERSION |
||||
|
cp target/release/zecwallet-cli target/linux-zecwallet-cli-v$APP_VERSION/ |
||||
|
gpg --batch --output target/linux-zecwallet-cli-v$APP_VERSION/zecwallet-cli.sig --detach-sig target/linux-zecwallet-cli-v$APP_VERSION/zecwallet-cli |
||||
|
cd target |
||||
|
cd linux-zecwallet-cli-v$APP_VERSION |
||||
|
gsha256sum zecwallet-cli > sha256sum.txt |
||||
|
cd .. |
||||
|
zip -r linux-zecwallet-cli-v$APP_VERSION.zip linux-zecwallet-cli-v$APP_VERSION |
||||
|
cd .. |
||||
|
|
||||
|
|
||||
|
#Windows |
||||
|
rm -rf target/Windows-zecwallet-cli-v$APP_VERSION |
||||
|
mkdir -p target/Windows-zecwallet-cli-v$APP_VERSION |
||||
|
cp target/x86_64-pc-windows-gnu/release/zecwallet-cli.exe target/Windows-zecwallet-cli-v$APP_VERSION/ |
||||
|
gpg --batch --output target/Windows-zecwallet-cli-v$APP_VERSION/zecwallet-cli.sig --detach-sig target/Windows-zecwallet-cli-v$APP_VERSION/zecwallet-cli.exe |
||||
|
cd target |
||||
|
cd Windows-zecwallet-cli-v$APP_VERSION |
||||
|
gsha256sum zecwallet-cli.exe > sha256sum.txt |
||||
|
cd .. |
||||
|
zip -r Windows-zecwallet-cli-v$APP_VERSION.zip Windows-zecwallet-cli-v$APP_VERSION |
||||
|
cd .. |
||||
|
|
||||
|
|
||||
|
|
Loading…
Reference in new issue