Files
LCEMP-Server/Linux/build.sh
2026-03-15 22:25:51 -03:00

42 lines
1.2 KiB
Bash

#!/bin/bash
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
ROOT_DIR="$(cd "$SCRIPT_DIR/../.." && pwd)"
SRC="$HOME/lcemp-src"
BUILD="$HOME/lcemp-build"
ACTION="${1:-Release}"
case "$ACTION" in
Clean)
rm -rf "$BUILD" "$SRC"
echo "Cleaned."
exit 0
;;
Sync)
rm -rf "$SRC"
;&
esac
if [ ! -d "$SRC/Minecraft.World" ]; then
echo "copying source files to $SRC..."
mkdir -p "$SRC"
cp -a "$ROOT_DIR/." "$SRC/"
rm -rf "$SRC/build_linux" "$SRC/build_dedicated" "$SRC/x64" "$SRC/x64_Server_Release" "$SRC/ipch" "$SRC/.vs"
else
rsync -a "$ROOT_DIR/CMakeLists.txt" "$SRC/"
rsync -a "$ROOT_DIR/cmake/" "$SRC/cmake/"
rsync -a "$ROOT_DIR/Minecraft.Server/" "$SRC/Minecraft.Server/" --exclude='*.obj' --exclude='*.pdb' --exclude='*.sdf' --exclude='*.tlog'
rsync -a "$ROOT_DIR/Minecraft.World/" "$SRC/Minecraft.World/" --exclude='*.obj' --exclude='*.pdb'
rsync -a "$ROOT_DIR/Minecraft.Client/" "$SRC/Minecraft.Client/" --exclude='*.obj' --exclude='*.pdb'
fi
mkdir -p "$BUILD"
cd "$BUILD"
cmake "$SRC/Minecraft.Server" -DCMAKE_BUILD_TYPE=Release
cmake --build . --target MinecraftDedicatedServer -- -j$(nproc)
strip MinecraftDedicatedServer
echo ""
ls -lh MinecraftDedicatedServer