| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- #!/bin/bash
- # FPC build scripts also work in Windows in WSL, Cygwin, MSYS, etc.
- # FPC compiler command
- FPC=fpc
- # You can override default FPC target (to cross-compile etc.)
- #TARGET=-Tuser
- # Uncomment if you run this shell script in WSL and want to run Windows-side FPC instead of Linux FPC
- #FPC=fpc.exe
- set -e
- # Make sure there are no CR characters (by fpc.exe) otherwise variable concatenation of FPCTARGET would fail
- FPCCPU=$($FPC -iTP | tr -d '\r')
- FPCOS=$($FPC -iTO | tr -d '\r')
- FPCTARGET=$FPCCPU-$FPCOS
- ROOTDIR=".."
- DEMOPATH="$ROOTDIR/Demos/ObjectPascal"
- BINPATH="$ROOTDIR/Demos/Bin"
- UNITPATH="$ROOTDIR/Demos/Bin/Dcu/$FPCTARGET"
- # FPC does not like creating any new directories passed by -FE -FU
- mkdir -p $UNITPATH
- mkdir -p $BINPATH
- set +e
- OUTPUT="-FE$BINPATH -FU$UNITPATH"
- # This is how you suppress -vn set in fpc.cfg
- OPTIONS="-B -O3 -Xs -vn-"
- INCLUDE="-Fi$ROOTDIR/Source"
- LIBS="-Fl$ROOTDIR/Extensions/J2KObjects -Fl$ROOTDIR/Extensions/LibTiff/Compiled"
- DEMOSBUILD=0
- DEMOCOUNT=0
- function buildDemo {
- $FPC $OPTIONS $OUTPUT $TARGET $DEFINES $UNITS $INCLUDE $LIBS $DEMOPATH/$1
- if [ $? = 0 ]; then
- ((DEMOSBUILD++))
- fi
- echo
- }
- function printResult {
- SWITCH="\033["
- NORMAL="${SWITCH}0m"
- RED="${SWITCH}0;31m"
- GREEN="${SWITCH}0;32m"
- if [ $DEMOSBUILD = $DEMOCOUNT ]; then
- echo -e "${GREEN}Build Successful - all $DEMOSBUILD of $DEMOCOUNT in Demos/Bin directory${NORMAL}"
- else
- echo -e "${RED}Errors during building - only $DEMOSBUILD of $DEMOCOUNT demos build${NORMAL}"
- fi
- }
|