minecraft-pi-docker/scripts/build.sh
2021-06-24 12:40:34 -04:00

130 lines
2.7 KiB
Bash
Executable File

#!/bin/sh
set -e
# This Script Assumes An x86_64 Host
if [ "$(uname -m)" != "x86_64" ]; then
echo 'Invalid Build Architecture'
exit 1
fi
# Build For x86_64
native_build() {
# Create Build Dir
rm -rf build/$1-x86_64
mkdir -p build/$1-x86_64
cd build/$1-x86_64
# Create Prefix
local prefix="$(cd ../../; pwd)/out/$1-x86_64"
rm -rf "${prefix}"
mkdir -p "${prefix}"
# Prepare
local extra_arg='-DMCPI_USE_MEDIA_LAYER_PROXY=ON'
if [ "$1" = "server" ]; then
extra_arg='-DMCPI_SERVER_MODE=ON'
fi
# Build ARM Components
mkdir arm
cd arm
cmake -DMCPI_BUILD_MODE=arm "${extra_arg}" ../../..
make -j$(nproc)
make install DESTDIR="${prefix}"
cd ../
# Build Native Components
mkdir native
cd native
cmake -DMCPI_BUILD_MODE=native "${extra_arg}" ../../..
make -j$(nproc)
make install DESTDIR="${prefix}"
cd ../
# Exit
cd ../../
}
# Build For ARM64
arm64_build() {
# Create Build Dir
rm -rf build/$1-arm64
mkdir -p build/$1-arm64
cd build/$1-arm64
# Create Prefix
local prefix="$(cd ../../; pwd)/out/$1-arm64"
rm -rf "${prefix}"
mkdir -p "${prefix}"
# Prepare
local extra_arg='-DMCPI_USE_MEDIA_LAYER_PROXY=ON'
if [ "$1" = "server" ]; then
extra_arg='-DMCPI_SERVER_MODE=ON'
fi
# Build ARM Components
mkdir arm
cd arm
cmake -DMCPI_BUILD_MODE=arm "${extra_arg}" ../../..
make -j$(nproc)
make install DESTDIR="${prefix}"
cd ../
# Build Native Components
mkdir native
cd native
cmake -DCMAKE_TOOLCHAIN_FILE="$(cd ../../../; pwd)/cmake/arm64-toolchain.cmake" -DMCPI_BUILD_MODE=native "${extra_arg}" ../../..
make -j$(nproc)
make install DESTDIR="${prefix}"
cd ../
# Exit
cd ../../
}
# Build For ARM
arm_build() {
# Create Build Dir
rm -rf build/$1-arm
mkdir -p build/$1-arm
cd build/$1-arm
# Create Prefix
local prefix="$(cd ../../; pwd)/out/$1-arm"
rm -rf "${prefix}"
mkdir -p "${prefix}"
# Prepare
local server_mode='OFF'
if [ "$1" = "server" ]; then
server_mode='ON'
fi
# Build All Components
cmake -DMCPI_BUILD_MODE=both -DMCPI_SERVER_MODE="${server_mode}" ../..
make -j$(nproc)
make install DESTDIR="${prefix}"
# Exit
cd ../../
}
# Clean Prefix
rm -rf out
# Build
native_build client
native_build server
if [ ! -z "${ARM_PACKAGES_SUPPORTED}" ]; then
# Requires ARM Versions Of GLFW And FreeImage
arm64_build client
fi
arm64_build server
if [ ! -z "${ARM_PACKAGES_SUPPORTED}" ]; then
# Requires ARM Versions Of GLFW And FreeImage
arm_build client
fi
arm_build server