#!/bin/bash

SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"

# Create output directory
mkdir -p ${SCRIPT_DIR}/output


function build_arch() {
    local arch=$1
    local PREVDIR=$PWD
    cd ${SCRIPT_DIR}

    if [ ! -f "${HOME}/.musl-cross/${arch}-linux-musl-cross/bin/${arch}-linux-musl-c++" ]; then
        echo "Musl cross compiler for ${arch} not found. Please run install_build_prerequisites.sh first."
        exit 1
    fi

    CMAKE_BUILD_TYPE=Release
    CC="${HOME}/.musl-cross/${arch}-linux-musl-cross/bin/${arch}-linux-musl-gcc"
    CXX="${HOME}/.musl-cross/${arch}-linux-musl-cross/bin/${arch}-linux-musl-g++"

    BUILDDIR=${SCRIPT_DIR}/build/${arch}
    mkdir -p ${BUILDDIR}

    cmake -B ${BUILDDIR} -G Ninja -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_C_COMPILER=${CC} -DCMAKE_CXX_COMPILER=${CXX}
    cmake --build ${BUILDDIR}

    upx ${BUILDDIR}/dropshell
    cp ${BUILDDIR}/dropshell ${SCRIPT_DIR}/output/dropshell.${arch}
    
    cd ${PREVDIR}
}

build_arch x86_64
build_arch aarch64

echo "Static binaries have been created:"
ls -la output