54 lines
1.4 KiB
Bash
Executable File
54 lines
1.4 KiB
Bash
Executable File
#!/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"
|
|
ds version
|
|
echo "Build process completed!"
|