30 lines
859 B
Bash
Executable File
30 lines
859 B
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
|
|
OUTPUT_DIR="$SCRIPT_DIR/output"
|
|
BUILD_DIR="$SCRIPT_DIR/build"
|
|
PROJECT_NAME="dehydrate"
|
|
|
|
rm -rf "$BUILD_DIR"
|
|
mkdir -p "$BUILD_DIR" "$OUTPUT_DIR"
|
|
cd "$BUILD_DIR"
|
|
|
|
cmake ..
|
|
make -j$(nproc)
|
|
|
|
# Copy the binary to output directory with .amd64 suffix if x86_64
|
|
if [[ $(uname -m) == "x86_64" ]]; then
|
|
cp "$PROJECT_NAME" "$OUTPUT_DIR/$PROJECT_NAME.amd64"
|
|
echo "Built $OUTPUT_DIR/$PROJECT_NAME.amd64 (x86_64, static if CMake is configured for musl/static)"
|
|
fi
|
|
|
|
cd "$SCRIPT_DIR"
|
|
|
|
# Build for arm64 (musl static) if cross-compiler available
|
|
if command -v aarch64-linux-musl-g++ &>/dev/null; then
|
|
echo "Building for arm64 (musl static)..."
|
|
aarch64-linux-musl-g++ -O2 -static -o "$OUTPUT_DIR/$PROJECT_NAME.arm64" src/*.cpp
|
|
echo "Built $PROJECT_NAME.arm64 (arm64, static)"
|
|
fi
|