diff --git a/tools/build_pkg.sh b/tools/build_pkg.sh index 18a370de..090c920d 100755 --- a/tools/build_pkg.sh +++ b/tools/build_pkg.sh @@ -110,7 +110,6 @@ function build_for_platform() { build_for_platform "linux-amd64" "manylinux_2_31_x86_64" build_for_platform "linux-aarch64" "manylinux_2_31_aarch64" build_for_platform "linux-armv7l" "manylinux_2_31_armv7l" -# build_for_platform "linux-riscv64" "manylinux_2_31_riscv64" # There doesn't seem to be tags for freebsd? # build_for_platform "freebsd-amd64" "freebsd_x86_64" # build_for_platform "freebsd-aarch64" "freebsd_aarch64" @@ -119,7 +118,8 @@ build_for_platform "musl-amd64" "musllinux_1_1_x86_64" # The official fastfetch build uses macOS 12.0 build_for_platform "macos-universal" "macosx_11_0_x86_64" build_for_platform "macos-universal" "macosx_11_0_arm64" -# TODO: linux_riscv64 +# TODO: linux_riscv64 (pypi's platform tag support is not there yet) +# build_for_platform "linux-riscv64" "manylinux_2_31_riscv64" # Finally, remove temporary files rm -rf wheel git diff --git a/tools/build_rust.sh b/tools/build_rust.sh new file mode 100644 index 00000000..3d0a9a5a --- /dev/null +++ b/tools/build_rust.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +set -e + +# Step 1: Build the Docker image +echo "Building the Docker image..." +docker build -t rust-builder-general tools/rust-builder/general + +# Step 2: Run the Docker container and execute the builder script +echo "Running the Docker container..." +docker run --rm -v "$(pwd)":/app rust-builder bash -c "cd /app && ./tools/rust-builder/general/builder.sh" diff --git a/tools/rust-builder/general/Dockerfile b/tools/rust-builder/general/Dockerfile new file mode 100644 index 00000000..1ce8bca3 --- /dev/null +++ b/tools/rust-builder/general/Dockerfile @@ -0,0 +1,16 @@ +FROM debian:10-slim + +# Install Rust building environment +RUN apt update && apt install -y curl build-essential gcc libssl-dev bash musl-tools mingw-w64 +RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y +RUN source $HOME/.cargo/env + +# Add toolchains for building for gnu[x86_64, aarch64, armv7l], musl[x86_64], and windows[x86_64, aarch64] +RUN rustup target add \ + x86_64-unknown-linux-gnu \ + aarch64-unknown-linux-gnu \ + armv7-unknown-linux-gnueabihf \ + x86_64-unknown-linux-musl \ + x86_64-pc-windows-gnu \ + +WORKDIR /app diff --git a/tools/rust-builder/general/build.sh b/tools/rust-builder/general/build.sh new file mode 100644 index 00000000..f12cae9d --- /dev/null +++ b/tools/rust-builder/general/build.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +# Build for platforms +cargo build --release --target x86_64-unknown-linux-gnu +cargo build --release --target aarch64-unknown-linux-gnu +cargo build --release --target armv7-unknown-linux-gnueabihf +cargo build --release --target x86_64-unknown-linux-musl +cargo build --release --target x86_64-pc-windows-gnu