Files
simple-object-server/compile.sh
Your Name a7580122dc .
2025-05-03 13:28:54 +12:00

79 lines
2.0 KiB
Bash
Executable File

#!/bin/bash
# Exit on error
set -e
# DIRECTORIES
SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
CACHE_DIR="${SCRIPT_DIR}/cache"
EXE_DIR="${SCRIPT_DIR}/exe"
# FUNCTIONS
function title() {
echo "----------------------------------------"
# Center the text
local text="$1"
local line_length=40
local text_length=${#text}
local padding=$(( (line_length - text_length) / 2 ))
printf "%*s%s%*s\n" $padding "" "$text" $padding ""
echo "----------------------------------------"
}
function die() {
echo " "
title "$1"
echo " "
exit 1
}
function build() {
ARCH=$1
BUILD_NAME="build-${ARCH}"
BUILD_DIR="${SCRIPT_DIR}/${BUILD_NAME}"
mkdir -p ${BUILD_DIR}
DOCKCROSS_SCRIPT="${CACHE_DIR}/dockcross-${ARCH}"
if [ ! -f "${DOCKCROSS_SCRIPT}" ]; then
echo "Downloading dockcross-${ARCH}"
docker run --rm "dockcross/${ARCH}-full" > "${DOCKCROSS_SCRIPT}"
chmod +x "${DOCKCROSS_SCRIPT}"
fi
echo "Building $ARCH executable"
cd "${SCRIPT_DIR}"
"${DOCKCROSS_SCRIPT}" bash -c "cd ${BUILD_NAME} && cmake .. && make -j$(nproc)"
if [ ! -f ${BUILD_DIR}/simple_object_storage ]; then
die "Failed to build $ARCH executable"
fi
echo "Copying $ARCH executable to $EXE_DIR/simple_object_storage-$ARCH"
cp ${BUILD_DIR}/simple_object_storage $EXE_DIR/simple_object_storage-$ARCH
}
#--------------------------------
# MAIN
#--------------------------------
cd $SCRIPT_DIR
mkdir -p ${CACHE_DIR}
mkdir -p ${EXE_DIR}
title "Building linux-arm64 executable"
build linux-arm64 || die "Failed to build linux-arm64 executable"
title "Building linux-x86_64 executable"
build linux-x86_64 || die "Failed to build linux-x86_64 executable"
# use Docker architecture style
cp ${EXE_DIR}/simple_object_storage-linux-x86_64 ${EXE_DIR}/simple_object_storage-linux-amd64
echo "Compile completed successfully!"
echo "amd64 executable: ./simple_object_storage-linux-amd64"
echo "arm64 executable: ./simple_object_storage-linux-arm64"
echo "Build completed successfully!"