[+] OSXCross rust build

This commit is contained in:
Azalea Gui 2024-12-22 04:47:16 -05:00
parent ca74acbafb
commit 90d12d9385
3 changed files with 44 additions and 3 deletions

View file

@ -2,10 +2,14 @@
set -e
# Step 1: Build the Docker image
echo "Building 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-general bash -c "cd /app && ./tools/rust-builder/general/build.sh"
echo "Building MacOS Docker image..."
docker build -t rust-builder-osx tools/rust-builder/osx
echo "Running MacOS Docker container..."
docker run --rm -v "$(pwd)":/app rust-builder-osx bash -c "cd /app && ./tools/rust-builder/osx/build.sh"

View file

@ -0,0 +1,16 @@
FROM crazymax/osxcross:11.3-alpine AS osxcross
FROM alpine
# Install Rust building environment
RUN apk add --no-cache curl gcc musl-dev openssl-dev bash clang lld
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
# Add toolchains for building for macOS[x86_64, aarch64]
RUN /root/.cargo/bin/rustup target add x86_64-apple-darwin aarch64-apple-darwin
# Copy osxcross toolchain
# RUN apt-get update && apt-get install -y clang lld libc6-dev
ENV PATH="/osxcross/bin:$PATH"
ENV LD_LIBRARY_PATH="/osxcross/lib:$LD_LIBRARY_PATH"
COPY --from=osxcross /osxcross /osxcross

21
tools/rust-builder/osx/build.sh Executable file
View file

@ -0,0 +1,21 @@
#!/usr/bin/env bash
set -e
# Add cargo to path
export PATH="$HOME/.cargo/bin:$PATH"
cd /app
# OSX linker and ar
export OSX_VER=20.4
export CARGO_TARGET_X86_64_APPLE_DARWIN_LINKER=/osxcross/bin/x86_64-apple-darwin$OSX_VER-clang
export CARGO_TARGET_X86_64_APPLE_DARWIN_AR=/osxcross/bin/x86_64-apple-darwin$OSX_VER-ar
export CARGO_TARGET_AARCH64_APPLE_DARWIN_LINKER=/osxcross/bin/aarch64-apple-darwin$OSX_VER-clang
export CARGO_TARGET_AARCH64_APPLE_DARWIN_AR=/osxcross/bin/aarch64-apple-darwin$OSX_VER-ar
# Build for platforms
#cp /osxcross/bin/x86_64-apple-darwin$OSX_VER-strip /usr/bin/strip
cargo build --release --target x86_64-apple-darwin
#cp /osxcross/bin/aarch64-apple-darwin$OSX_VER-strip /usr/bin/strip
cargo build --release --target aarch64-apple-darwin