add comments documenting what we do and make the script output all the build commands

BodgeMaster-unfinished
BodgeMaster 2022-06-24 10:05:39 +02:00
parent ec445d7a44
commit 9e6f07ec0a
1 changed files with 23 additions and 4 deletions

View File

@ -1,13 +1,32 @@
#!/bin/bash
# `.cpp` files in src/lib will be automatically picked up and compiled into dynamic libraries.
echo "Building libs..." echo "Building libs..."
mkdir -pv bin/lib mkdir -pv bin/lib
for lib in $(find ./src/lib -name "*.cpp"); do for lib in $(find ./src/lib -name "*.cpp"); do
echo "Compiling $lib" COMPILE_COMMAND="c++ -shared -o $(sed -e 's/^.\/src/.\/bin/;s/cpp$/so/' <<< $lib) $lib"
c++ -shared -o $(sed -e 's/^.\/src/.\/bin/;s/cpp$/so/' <<< $lib) $lib; echo $COMPILE_COMMAND
$COMPILE_COMMAND
done done
echo "Building tools..."
mkdir -pv bin/tools
# Commands for every program need to be given individually because we can't # Commands for every program need to be given individually because we can't
# just add all shared libraries to all programs. # just add all shared libraries to all programs.
# Or can we? Idk, cba to find out. # Or can we? Idk, cba to find out.
# How to build a tool: Tell the compiler where to find shared libraries and
# which libraries to use.
# Example: shared libraries are in bin/lib => -Lbin/lib
# one of the libraries in that directory is libnbt.so
# => use with -lnbt (omit prefix lib and suffix .so)
# How to run a tool: specify the library path to use for the dynamic linker
# when running a program
# Example: LD_LIBRARY_PATH=bin/lib bin/tools/dumpnbt
echo "Building tools..."
mkdir -pv bin/tools
# add compile commands to this variable
COMPILE_COMMANDS="
set -v
c++ src/tools/dumpnbt.cpp -Lbin/lib -lnbt -o bin/tools/dumpnbt c++ src/tools/dumpnbt.cpp -Lbin/lib -lnbt -o bin/tools/dumpnbt
"
sh <<< $COMPILE_COMMANDS