78 lines
1.6 KiB
Bash
78 lines
1.6 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
#rm -R bin/linux
|
||
|
mkdir -p bin/linux/lib
|
||
|
mkdir -p obj
|
||
|
rm obj/*
|
||
|
|
||
|
# copy shared objects, squish "linux" subdirectory in bin/linux/lib
|
||
|
#cp -R lib/linux/* bin/linux/lib
|
||
|
|
||
|
# copy assets directory (font, sprites, etc)
|
||
|
cp -R assets bin/linux
|
||
|
|
||
|
# copy Python code
|
||
|
cp -R src/scripts bin/linux/scripts
|
||
|
|
||
|
# work from output directory and change every g++ path to relative D:<
|
||
|
cd bin/linux
|
||
|
|
||
|
# prepare object files of engine classes
|
||
|
abort_compile()
|
||
|
{
|
||
|
echo "Compilation failed on $fn.cpp"
|
||
|
exit 1
|
||
|
}
|
||
|
|
||
|
# Precompile engine classes. Get errors in their file, not where they're included
|
||
|
for fn in $(ls ../../src/*.cpp -1 | cut -d/ -f4 | cut -d. -f1)
|
||
|
do
|
||
|
# Skip combined_poc.cpp, it has a duplicate main
|
||
|
if [ "$fn" = "combined_poc" ]; then continue; fi
|
||
|
|
||
|
echo "Compile $fn.cpp"
|
||
|
g++ \
|
||
|
-g \
|
||
|
-I../../deps_linux \
|
||
|
-I../../deps_linux/Python-3.11.1 \
|
||
|
-I../../platform/linux \
|
||
|
--std=c++2a \
|
||
|
-c ../../src/$fn.cpp \
|
||
|
-o ../../obj/$fn.o \
|
||
|
-lm \
|
||
|
-ldl \
|
||
|
-lutil \
|
||
|
-lpthread \
|
||
|
-lpython3.11 \
|
||
|
-lsfml-graphics \
|
||
|
-lsfml-window \
|
||
|
-lsfml-system \
|
||
|
-lsfml-audio \
|
||
|
-ltcod \
|
||
|
|| abort_compile $fn
|
||
|
done
|
||
|
|
||
|
# Final executable
|
||
|
# --std= : c++2a vs c++17
|
||
|
g++ \
|
||
|
-g \
|
||
|
--std=c++2a \
|
||
|
-I../../deps_linux \
|
||
|
-I../../deps_linux/Python-3.11.1 \
|
||
|
-I../../platform/linux \
|
||
|
../../obj/*.o \
|
||
|
-o mcrogueface \
|
||
|
-Wl,-rpath lib \
|
||
|
-L../../deps_linux \
|
||
|
-lm \
|
||
|
-ldl \
|
||
|
-lutil \
|
||
|
-lpthread \
|
||
|
-lpython3.11 \
|
||
|
-lsfml-graphics \
|
||
|
-lsfml-window \
|
||
|
-lsfml-system \
|
||
|
-lsfml-audio \
|
||
|
-ltcod \
|
||
|
|