This commit is contained in:
53
source/build_native.sh
Executable file
53
source/build_native.sh
Executable file
@ -0,0 +1,53 @@
|
||||
#!/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.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!"
|
Reference in New Issue
Block a user