57 lines
1.9 KiB
Bash
Executable file
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"
|