minecraft-pi-docker/scripts/setup.sh

81 lines
1.7 KiB
Bash
Executable File

#!/bin/sh
set -e
# ARM Toolchain File
ARM_TOOLCHAIN_FILE="$(pwd)/cmake/armhf-toolchain.cmake"
# Setup
setup() {
# Find Toolchain
local toolchain_file="$(pwd)/cmake/${ARCH}-toolchain.cmake"
if [ ! -f "${toolchain_file}" ]; then
echo "Invalid Architecture: ${ARCH}" > /dev/stderr
exit 1
fi
# Create Build Dir
rm -rf "build/${MODE}-${ARCH}"
mkdir -p "build/${MODE}-${ARCH}"
cd "build/${MODE}-${ARCH}"
# Prepare
local extra_arg='-DMCPI_USE_MEDIA_LAYER_PROXY=ON'
if [ "${MODE}" = "server" ]; then
extra_arg='-DMCPI_SERVER_MODE=ON'
fi
# Build ARM Components
mkdir arm
cd arm
cmake -DCMAKE_TOOLCHAIN_FILE="${ARM_TOOLCHAIN_FILE}" -DMCPI_BUILD_MODE=arm "${extra_arg}" "$@" ../../..
cd ../
# Build Native Components
mkdir native
cd native
cmake -DCMAKE_TOOLCHAIN_FILE="${toolchain_file}" -DMCPI_BUILD_MODE=native "${extra_arg}" "$@" ../../..
cd ../
# Exit
cd ../../
}
# Setup For ARM
armhf_setup() {
# Create Build Dir
rm -rf "build/${MODE}-armhf"
mkdir -p "build/${MODE}-armhf"
cd "build/${MODE}-armhf"
# Prepare
local server_mode='OFF'
if [ "${MODE}" = "server" ]; then
server_mode='ON'
fi
# Build All Components
cmake -DCMAKE_TOOLCHAIN_FILE="${ARM_TOOLCHAIN_FILE}" -DMCPI_BUILD_MODE=both -DMCPI_SERVER_MODE="${server_mode}" "$@" ../..
# Exit
cd ../../
}
# Variables
MODE="$1"
ARCH="$2"
shift 2
# Verify Mode
if [ "${MODE}" != "client" ] && [ "${MODE}" != "server" ]; then
echo "Invalid Mode: ${MODE}" > /dev/stderr
exit 1
fi
# Setup
if [ "${ARCH}" = "armhf" ]; then
armhf_setup "$@"
else
setup "$@"
fi