games-server/battleship/build.sh
2026-04-09 08:35:28 +02:00

57 lines
1.9 KiB
Bash
Executable file

#!/bin/bash
# build.sh — Build script for Battleship (Phase 1)
# Works without CMake / make when Xcode license is not accepted.
set -e
CXX="${CXX:-/Library/Developer/CommandLineTools/usr/bin/c++}"
SYSROOT="${SYSROOT:-/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk}"
CXXFLAGS="-std=c++17 -isysroot $SYSROOT -Wall -Wextra -O2"
OUTDIR="build"
mkdir -p "$OUTDIR"
echo "=== Compiling common ==="
$CXX $CXXFLAGS -c -I common/include \
common/src/serialization.cpp -o "$OUTDIR/serialization.o"
echo "=== Compiling server ==="
$CXX $CXXFLAGS -c -I common/include -I server/include \
server/src/game_thread.cpp -o "$OUTDIR/game_thread.o"
$CXX $CXXFLAGS -c -I common/include -I server/include \
server/src/server.cpp -o "$OUTDIR/server.o"
$CXX $CXXFLAGS -c -I common/include -I server/include \
server/src/main.cpp -o "$OUTDIR/server_main.o"
echo "=== Compiling client ==="
$CXX $CXXFLAGS -c -I common/include -I client/include \
client/src/display.cpp -o "$OUTDIR/display.o"
$CXX $CXXFLAGS -c -I common/include -I client/include \
client/src/client.cpp -o "$OUTDIR/client.o"
$CXX $CXXFLAGS -c -I common/include -I client/include \
client/src/main.cpp -o "$OUTDIR/client_main.o"
echo "=== Linking server ==="
$CXX -isysroot "$SYSROOT" \
"$OUTDIR/serialization.o" \
"$OUTDIR/game_thread.o" \
"$OUTDIR/server.o" \
"$OUTDIR/server_main.o" \
-lpthread -o "$OUTDIR/battleship_server"
echo "=== Linking client ==="
$CXX -isysroot "$SYSROOT" \
"$OUTDIR/serialization.o" \
"$OUTDIR/display.o" \
"$OUTDIR/client.o" \
"$OUTDIR/client_main.o" \
-lpthread -o "$OUTDIR/battleship_client"
echo ""
echo "Build complete!"
echo " Server: $OUTDIR/battleship_server"
echo " Client: $OUTDIR/battleship_client"
echo ""
echo "Usage:"
echo " $OUTDIR/battleship_server [port] # default port: 8080"
echo " $OUTDIR/battleship_client [host] [port] # default: 127.0.0.1:8080"