runfontdump.sh 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #!/bin/bash
  2. # Generate fontdump resources and update visual studio project files.
  3. 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"
  4. VC=platform/win32/libresources.vcxproj
  5. VCF=platform/win32/libresources.vcxproj.filters
  6. cp scripts/libresources.vcxproj.template $VC
  7. cp scripts/libresources.vcxproj.filters.template $VCF
  8. mkdir -p build
  9. cc -O2 -o build/bin2coff.exe scripts/bin2coff.c
  10. for FILE in $FONTS
  11. do
  12. NAME=$(echo _binary_$(basename $FILE) | tr '/.-' '___')
  13. OBJ=$(echo generated/$FILE.obj)
  14. OBJ64=$(echo generated/$FILE.x64.obj)
  15. DIR=$(dirname $OBJ)
  16. echo $OBJ
  17. mkdir -p $DIR
  18. ./build/bin2coff.exe $FILE $OBJ $NAME
  19. ./build/bin2coff.exe $FILE $OBJ64 $NAME 64bit
  20. WINFILE=$(echo $FILE | sed 's,/,\\\\,g')
  21. WINDIR=$(dirname $FILE | sed 's/resources.//;s,/,\\\\,g')
  22. case $FILE in
  23. *.cff)
  24. sed -i -e '/DUMP:CFF/i <bin2coff__cff_ Include="..\\..\\'$WINFILE'" />' $VC
  25. sed -i -e '/DUMP:CFF/i <bin2coff__cff_ Include="..\\..\\'$WINFILE'"><Filter>'$WINDIR'</Filter></bin2coff__cff_>' $VCF
  26. ;;
  27. *.otf)
  28. sed -i -e '/DUMP:OTF/i <bin2coff__otf_ Include="..\\..\\'$WINFILE'" />' $VC
  29. sed -i -e '/DUMP:OTF/i <bin2coff__otf_ Include="..\\..\\'$WINFILE'"><Filter>'$WINDIR'</Filter></bin2coff__otf_>' $VCF
  30. ;;
  31. *.ttc)
  32. sed -i -e '/DUMP:TTC/i <bin2coff__ttc_ Include="..\\..\\'$WINFILE'" />' $VC
  33. sed -i -e '/DUMP:TTC/i <bin2coff__ttc_ Include="..\\..\\'$WINFILE'"><Filter>'$WINDIR'</Filter></bin2coff__ttc_>' $VCF
  34. ;;
  35. *.ttf)
  36. sed -i -e '/DUMP:TTF/i <bin2coff__ttf_ Include="..\\..\\'$WINFILE'" />' $VC
  37. sed -i -e '/DUMP:TTF/i <bin2coff__ttf_ Include="..\\..\\'$WINFILE'"><Filter>'$WINDIR'</Filter></bin2coff__ttf_>' $VCF
  38. ;;
  39. esac
  40. done