#!/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 -e 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/x86_64-linux-musl-native/bin/x86_64-linux-musl-gcc" CXX="${HOME}/.musl-cross/x86_64-linux-musl-native/bin/x86_64-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.native" cd "${PREVDIR}" || exit 1 } build_native echo "Auto-installing dropshell locally..." mkdir -p "${INSTALL_DIR}" cp "${OUTPUT_DIR}/dropshell.native" "${INSTALL_DIR}/dropshell" ds version echo "Build process completed!"