Fix u8g.h search path error (#10419)
Support env MARLIN_LANGS for user select generated language, and update doc; update script to generate dogm_font_data_ISO10646_1.h automatically.
This commit is contained in:
parent
584735c994
commit
93273a4c9e
|
@ -43,6 +43,10 @@ before_script:
|
||||||
- cat ${TRAVIS_BUILD_DIR}/Marlin/src/inc/_Version.h
|
- cat ${TRAVIS_BUILD_DIR}/Marlin/src/inc/_Version.h
|
||||||
#
|
#
|
||||||
script:
|
script:
|
||||||
|
#
|
||||||
|
# Fix include path problem in platformio.ini, U8glib-HAL_ID1932/src/lib/u8g.h
|
||||||
|
#
|
||||||
|
- find Marlin/ -name "*.h" | while read a; do sed -e 's|clib/u8g.h|u8g.h|' -i "$a"; done
|
||||||
#
|
#
|
||||||
# Backup pins_RAMPS.h
|
# Backup pins_RAMPS.h
|
||||||
#
|
#
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <clib/u8g.h>
|
|
||||||
#include "fontutils.h"
|
#include "fontutils.h"
|
||||||
#include "u8g_fontutf8.h"
|
#include "u8g_fontutf8.h"
|
||||||
|
|
||||||
|
@ -216,7 +215,7 @@ unsigned int uxg_DrawWchar(u8g_t *pu8g, unsigned int x, unsigned int y, wchar_t
|
||||||
const font_t *fnt_default = uxg_GetFont(pu8g);
|
const font_t *fnt_default = uxg_GetFont(pu8g);
|
||||||
|
|
||||||
if (!uxg_Utf8FontIsInited()) {
|
if (!uxg_Utf8FontIsInited()) {
|
||||||
u8g_DrawStrP(pu8g, x, y, PSTR("Err: utf8 font not initialized."));
|
u8g_DrawStrP(pu8g, x, y, (const u8g_pgm_uint8_t *)PSTR("Err: utf8 font not initialized."));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
data.pu8g = pu8g;
|
data.pu8g = pu8g;
|
||||||
|
@ -250,7 +249,7 @@ unsigned int uxg_DrawUtf8Str(u8g_t *pu8g, unsigned int x, unsigned int y, const
|
||||||
const font_t *fnt_default = uxg_GetFont(pu8g);
|
const font_t *fnt_default = uxg_GetFont(pu8g);
|
||||||
|
|
||||||
if (!uxg_Utf8FontIsInited()) {
|
if (!uxg_Utf8FontIsInited()) {
|
||||||
u8g_DrawStrP(pu8g, x, y, PSTR("Err: utf8 font not initialized."));
|
u8g_DrawStrP(pu8g, x, y, (const u8g_pgm_uint8_t *)PSTR("Err: utf8 font not initialized."));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
data.pu8g = pu8g;
|
data.pu8g = pu8g;
|
||||||
|
@ -285,7 +284,7 @@ unsigned int uxg_DrawUtf8StrP(u8g_t *pu8g, unsigned int x, unsigned int y, const
|
||||||
|
|
||||||
if (!uxg_Utf8FontIsInited()) {
|
if (!uxg_Utf8FontIsInited()) {
|
||||||
TRACE("Error, utf8string not inited!");
|
TRACE("Error, utf8string not inited!");
|
||||||
u8g_DrawStrP(pu8g, x, y, PSTR("Err: utf8 font not initialized."));
|
u8g_DrawStrP(pu8g, x, y, (const u8g_pgm_uint8_t *)PSTR("Err: utf8 font not initialized."));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
data.pu8g = pu8g;
|
data.pu8g = pu8g;
|
||||||
|
|
|
@ -37,16 +37,13 @@ EXEC_BDF2U8G=`which bdf2u8g`
|
||||||
echo "0 set EXEC_BDF2U8G=$EXEC_BDF2U8G"
|
echo "0 set EXEC_BDF2U8G=$EXEC_BDF2U8G"
|
||||||
if [ ! -x "${EXEC_BDF2U8G}" ]; then
|
if [ ! -x "${EXEC_BDF2U8G}" ]; then
|
||||||
EXEC_BDF2U8G="${DN_EXEC}/bdf2u8g"
|
EXEC_BDF2U8G="${DN_EXEC}/bdf2u8g"
|
||||||
echo "1 set EXEC_BDF2U8G=$EXEC_BDF2U8G"
|
|
||||||
fi
|
fi
|
||||||
if [ ! -x "${EXEC_BDF2U8G}" ]; then
|
if [ ! -x "${EXEC_BDF2U8G}" ]; then
|
||||||
EXEC_BDF2U8G="${PWD}/bdf2u8g"
|
EXEC_BDF2U8G="${PWD}/bdf2u8g"
|
||||||
echo "2 set EXEC_BDF2U8G=$EXEC_BDF2U8G"
|
|
||||||
fi
|
fi
|
||||||
if [ ! -x "${EXEC_BDF2U8G}" ]; then
|
if [ ! -x "${EXEC_BDF2U8G}" ]; then
|
||||||
echo "Not found bdf2u8g!"
|
echo "ERR: Not found bdf2u8g!" >&2
|
||||||
echo "plaese compile u8blib/tools/font/bdf2u8g/bdf2u8g and link to it from here!"
|
echo "plaese compile u8blib/tools/font/bdf2u8g/bdf2u8g and link to it from here!" >&2
|
||||||
|
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -59,17 +56,55 @@ DN_WORK=./tmp1
|
||||||
|
|
||||||
(cd ${DN_EXEC}; gcc -o genpages genpages.c getline.c)
|
(cd ${DN_EXEC}; gcc -o genpages genpages.c getline.c)
|
||||||
|
|
||||||
LANGS="an bg ca zh_CN zh_TW cz da de el el-gr en es eu fi fr gl hr it jp-kana nl pl pt pt-br ru sk tr uk test"
|
LANGS_DEFAULT="an bg ca zh_CN zh_TW cz da de el el-gr en es eu fi fr gl hr it jp-kana nl pl pt pt-br ru sk tr uk test"
|
||||||
|
|
||||||
|
for LANG in ${MARLIN_LANGS:=$LANGS_DEFAULT} ; do
|
||||||
|
echo "INFO: generate Marlin language data for '${LANG}'" >&2
|
||||||
|
|
||||||
for LANG in ${LANGS} ; do
|
|
||||||
rm -rf ${DN_WORK}/
|
rm -rf ${DN_WORK}/
|
||||||
mkdir -p ${DN_WORK}
|
mkdir -p ${DN_WORK}
|
||||||
cp Configuration.h ${DN_WORK}/
|
cp Configuration.h ${DN_WORK}/
|
||||||
cp src/lcd/language/language_${LANG}.h ${DN_WORK}/
|
cp src/lcd/language/language_${LANG}.h ${DN_WORK}/
|
||||||
cd ${DN_WORK}/
|
cd ${DN_WORK}/
|
||||||
${EXEC_WXGGEN} "${FN_NEWFONT}"
|
${EXEC_WXGGEN} "${FN_NEWFONT}"
|
||||||
|
sed -e 's|fonts//|fonts/|g' -e 's|fonts//|fonts/|g' -e 's|[/0-9a-zA-Z_\-]*buildroot/share/fonts|buildroot/share/fonts|' -i fontutf8-data.h
|
||||||
cd ../
|
cd ../
|
||||||
mv ${DN_WORK}/fontutf8-data.h src/lcd/dogm/language_data_${LANG}.h
|
mv ${DN_WORK}/fontutf8-data.h src/lcd/dogm/language_data_${LANG}.h
|
||||||
rm -rf ${DN_WORK}/
|
rm -rf ${DN_WORK}/
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
||||||
|
# generate default ASCII font (char range 0-255):
|
||||||
|
# Marlin/src/lcd/dogm/dogm_font_data_ISO10646_1.h
|
||||||
|
#if [ "${MARLIN_LANGS}" == "${LANGS_DEFAULT}" ]; then
|
||||||
|
if [ 1 = 1 ]; then
|
||||||
|
rm -rf ${DN_WORK}/
|
||||||
|
mkdir -p ${DN_WORK}
|
||||||
|
cd ${DN_WORK}/
|
||||||
|
${EXEC_BDF2U8G} -b 1 -e 127 ${FN_NEWFONT} ISO10646_1_5x7 tmp1.h
|
||||||
|
${EXEC_BDF2U8G} -b 1 -e 255 ${FN_NEWFONT} ISO10646_1_5x7 tmp2.h
|
||||||
|
|
||||||
|
cat << EOF >tmp3.h
|
||||||
|
#include <U8glib.h>
|
||||||
|
|
||||||
|
#if defined(__AVR__) && ENABLED(NOT_EXTENDED_ISO10646_1_5X7)
|
||||||
|
// reduced font (only sysmbols 1 - 127) - saves about 1278 bytes of FLASH
|
||||||
|
|
||||||
|
EOF
|
||||||
|
cat tmp1.h >>tmp3.h
|
||||||
|
cat << EOF >>tmp3.h
|
||||||
|
#else
|
||||||
|
// extended (original) font (sysmbols 1 - 255)
|
||||||
|
EOF
|
||||||
|
cat tmp2.h >>tmp3.h
|
||||||
|
cat << EOF >>tmp3.h
|
||||||
|
|
||||||
|
#endif
|
||||||
|
EOF
|
||||||
|
sed -e 's|#include "u8g.h"|#include <clib/u8g.h>|' -i tmp3.h
|
||||||
|
|
||||||
|
cd ..
|
||||||
|
mv ${DN_WORK}/tmp3.h src/lcd/dogm/dogm_font_data_ISO10646_1.h
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
### Supported hardware
|
### Supported hardware
|
||||||
|
|
||||||
Marlin supports HD44780 character LCD and 128x64 graphical LCD via U8GLIB.
|
Marlin supports HD44780 character LCD and 128x64 graphical LCD via U8GLIB.
|
||||||
Because of the limitation of HD44780 hardware, Marlin can only support three
|
Because of the limitation of HD44780 hardwares, Marlin can only support three
|
||||||
character sets for that hardware:
|
character sets for that hardware:
|
||||||
Japanese (kana_utf8), Russian/Cyrillic (ru), or Western (Roman characters)
|
Japanese (kana_utf8), Russian/Cyrillic (ru), or Western (Roman characters)
|
||||||
|
|
||||||
|
@ -61,18 +61,19 @@ ln -s u8glib-master/tools/font/bdf2u8g/bdf2u8g
|
||||||
```
|
```
|
||||||
|
|
||||||
The 'genallfont.sh' script will generate the font data for all of the
|
The 'genallfont.sh' script will generate the font data for all of the
|
||||||
language translation files. You may edit the script to change the variable
|
language translation files.
|
||||||
LANGS to the list of languages you want to process. For example:
|
|
||||||
|
You may specify the language list you want to process. For example:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
LANGS="zh_TW"
|
MARLIN_LANGS="zh_CN zh_TW"
|
||||||
```
|
```
|
||||||
|
|
||||||
and then run the script to generate the font data (`language_data_xx.h`):
|
and run the script to generate the font data (`language_data_xx.h`):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd marlin-git/Marlin/
|
cd marlin-git/Marlin/
|
||||||
../buildroot/share/fonts/genallfont.sh
|
MARLIN_LANGS="zh_CN zh_TW" ../buildroot/share/fonts/genallfont.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
3. Change the language settings
|
3. Change the language settings
|
||||||
|
@ -108,6 +109,9 @@ example, your new font file name is `newfont.bdf`, then run the following comman
|
||||||
```bash
|
```bash
|
||||||
cd Marlin/
|
cd Marlin/
|
||||||
../buildroot/share/fonts/genallfont.sh ./newfont.bdf
|
../buildroot/share/fonts/genallfont.sh ./newfont.bdf
|
||||||
|
|
||||||
|
# OR if you just want to regenerate the language font data for a specific language:
|
||||||
|
MARLIN_LANGS="zh_TW" ../buildroot/share/fonts/genallfont.sh ./newfont.bdf
|
||||||
```
|
```
|
||||||
|
|
||||||
### Suggestions for Maintainers
|
### Suggestions for Maintainers
|
||||||
|
|
|
@ -143,7 +143,7 @@ grep -Hrn _UxGT . | grep '"' | \
|
||||||
while read PAGE BEGIN END UTF8BEGIN UTF8END; do \
|
while read PAGE BEGIN END UTF8BEGIN UTF8END; do \
|
||||||
if [ ! -f ${DN_DATA}/fontpage_${PAGE}_${BEGIN}_${END}.h ]; then \
|
if [ ! -f ${DN_DATA}/fontpage_${PAGE}_${BEGIN}_${END}.h ]; then \
|
||||||
${EXEC_BDF2U8G} -u ${PAGE} -b ${BEGIN} -e ${END} ${FN_FONT} fontpage_${PAGE}_${BEGIN}_${END} ${DN_DATA}/fontpage_${PAGE}_${BEGIN}_${END}.h > /dev/null 2>&1 ;
|
${EXEC_BDF2U8G} -u ${PAGE} -b ${BEGIN} -e ${END} ${FN_FONT} fontpage_${PAGE}_${BEGIN}_${END} ${DN_DATA}/fontpage_${PAGE}_${BEGIN}_${END}.h > /dev/null 2>&1 ;
|
||||||
#sed -i 's|#include "u8g.h"|#include "utility/u8g.h"|' ${DN_DATA}/fontpage_${PAGE}_${BEGIN}_${END}.h ;
|
#sed -i 's|#include "u8g.h"|#include <clib/u8g.h>|' ${DN_DATA}/fontpage_${PAGE}_${BEGIN}_${END}.h ;
|
||||||
fi ;\
|
fi ;\
|
||||||
grep -A 10000000000 u8g_fntpgm_uint8_t ${DN_DATA}/fontpage_${PAGE}_${BEGIN}_${END}.h >> tmpa ;\
|
grep -A 10000000000 u8g_fntpgm_uint8_t ${DN_DATA}/fontpage_${PAGE}_${BEGIN}_${END}.h >> tmpa ;\
|
||||||
echo " FONTDATA_ITEM(${PAGE}, ${BEGIN}, ${END}, fontpage_${PAGE}_${BEGIN}_${END}), // '${UTF8BEGIN}' -- '${UTF8END}'" >> tmpb ;\
|
echo " FONTDATA_ITEM(${PAGE}, ${BEGIN}, ${END}, fontpage_${PAGE}_${BEGIN}_${END}), // '${UTF8BEGIN}' -- '${UTF8END}'" >> tmpb ;\
|
||||||
|
|
Loading…
Reference in a new issue