#!/bin/bash

# $1 Source path of the project.
# $2 Target architecture list.
# DST is the destination directory.

SRC=$1
ARCHS=$2

if [ -z "$SRC" ]
then
    echo You need to provide a source path.
    return
fi

if [ -z "$ARCHS" ]
then
    ARCHS="linux-arm linux-arm64 linux-x64 win-x64 win-x86"
fi

if [ -z "$DST" ]
then
    DST=$PWD
fi

if [ -z "$CMAKE_DIR"]
then
    CMAKE_DIR="$SRC/Quik.Common/cmake"
fi

for ARCH in $ARCHS; do
    # Output directory.
    PREFIX=$DST/runtimes/$ARCH/native
    # Build directory.
    BUILD=$DST/out/$ARCH
    # Cmake toolchain file.
    TOOLCHAIN=$CMAKE_DIR/cmake/$ARCH.cmake

    # Create directories.
    mkdir -p $PREFIX $BUILD
    # Configure CMAKE.
    cmake -B $BUILD -S $SRC \
        -G Ninja \
        -DCMAKE_BUILD_TYPE=Release \
        -DCMAKE_C_FLAGS=-static-libgcc \
        -DCMAKE_CXX_FLAGS=-static-libgcc \
        -DCMAKE_INSTALL_PREFIX=$PREFIX \
        -DCMAKE_TOOLCHAIN_FILE=$TOOLCHAIN \
        $QUIK_ADDITIONAL_CMAKE

    # Build and install.
    ninja -C $BUILD all
    ninja -C $BUILD install
done