#!/bin/bash SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" OUTPUT_DIR=${SCRIPT_DIR}/output INSTALL_DIR=${HOME}/.local/bin mkdir -p "${OUTPUT_DIR}" # Exit on error set -euo pipefail ARCH=$(uname -m) if [ "$ARCH" != "x86_64" ] && [ "$ARCH" != "aarch64" ]; then echo "Unsupported architecture: $ARCH" exit 1 fi function build_native() { local BUILDDIR=${SCRIPT_DIR}/build/native local PREVDIR=$PWD local JOBS; JOBS=$(nproc) # Set JOBS to the number of available CPU cores mkdir -p "${BUILDDIR}" cd "${SCRIPT_DIR}" || exit 1 CC="${HOME}/.musl-cross/${ARCH}-linux-musl-native/bin/${ARCH}-linux-musl-gcc" CXX="${HOME}/.musl-cross/${ARCH}-linux-musl-native/bin/${ARCH}-linux-musl-g++" cmake -B "${BUILDDIR}" -G Ninja \ -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_C_COMPILER_LAUNCHER=ccache \ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ -DCMAKE_LINKER=mold \ -DCMAKE_C_COMPILER="${CC}" \ -DCMAKE_CXX_COMPILER="${CXX}" cd "${BUILDDIR}" || exit 1 ninja -j"$JOBS" #upx ${BUILDDIR}/dropshell cp "${BUILDDIR}/dropshell" "${OUTPUT_DIR}/dropshell.${ARCH}" cd "${PREVDIR}" || exit 1 } build_native echo "Auto-installing dropshell locally..." mkdir -p "${INSTALL_DIR}" cp "${OUTPUT_DIR}/dropshell.${ARCH}" "${INSTALL_DIR}/dropshell" echo "Build process completed!"