#!/bin/bash
# Create Makefile for win32 nmake to build fontdump resources.
# Also generate fontdump resources locally.
FONTS="resources/fonts/urw/*.cff resources/fonts/han/*.ttc resources/fonts/droid/*.ttf resources/fonts/noto/*.ttf resources/fonts/noto/*.otf resources/fonts/sil/*.cff"
OUT=scripts/fontdump.nmake.tmp
VC=platform/win32/libresources.vcxproj
VCF=platform/win32/libresources.vcxproj.filters
cp scripts/libresources.vcxproj.template $VC
cp scripts/libresources.vcxproj.filters.template $VCF
echo -e >$OUT "# This is an automatically generated file. Do not edit. */"
echo -e >>$OUT "default: generate"
echo -e >>$OUT "bin2coff.exe: scripts/bin2coff.c"
echo -e >>$OUT "\tcl scripts/bin2coff.c"
mkdir -p build
cc -O2 -o build/bin2coff.exe scripts/bin2coff.c
DIRS=$(dirname $FONTS | sort -u)
for DIR in $DIRS
do
echo -e >>$OUT "generated/$DIR:"
echo -e >>$OUT "\tmkdir generated/$DIR"
done
for FILE in $FONTS
do
NAME=$(echo _binary_$(basename $FILE) | tr '/.-' '___')
OBJ=$(echo generated/$FILE.obj)
OBJ64=$(echo generated/$FILE.x64.obj)
DIR=$(dirname $OBJ)
echo $OBJ
mkdir -p $DIR
./build/bin2coff.exe $FILE $OBJ $NAME
./build/bin2coff.exe $FILE $OBJ64 $NAME 64bit
echo -e >>$OUT "generate: $OBJ $OBJ64"
echo -e >>$OUT "$OBJ: $FILE $DIR bin2coff.exe"
echo -e >>$OUT "\tbin2coff.exe $FILE $OBJ $NAME"
echo -e >>$OUT "$OBJ64: $FILE $DIR bin2coff.exe"
echo -e >>$OUT "\tbin2coff.exe $FILE $OBJ64 $NAME 64bit"
WINFILE=$(echo $FILE | sed 's,/,\\\\,g')
WINDIR=$(dirname $FILE | sed 's/resources.//;s,/,\\\\,g')
case $FILE in
*.cff)
sed -i -e '/DUMP:CFF/i ' $VC
sed -i -e '/DUMP:CFF/i '$WINDIR'' $VCF
;;
*.otf)
sed -i -e '/DUMP:OTF/i ' $VC
sed -i -e '/DUMP:OTF/i '$WINDIR'' $VCF
;;
*.ttc)
sed -i -e '/DUMP:TTC/i ' $VC
sed -i -e '/DUMP:TTC/i '$WINDIR'' $VCF
;;
*.ttf)
sed -i -e '/DUMP:TTF/i ' $VC
sed -i -e '/DUMP:TTF/i '$WINDIR'' $VCF
;;
esac
done
tr / \\\\ < $OUT > scripts/fontdump.nmake
rm -f $OUT