Auto-generate list of LVGL sources
This commit is contained in:
parent
b8d79037bf
commit
09061a5978
4 changed files with 83 additions and 139 deletions
19
.gitignore
vendored
19
.gitignore
vendored
|
|
@ -1 +1,20 @@
|
||||||
|
# Copyright 2021 Johannes Marbach
|
||||||
|
#
|
||||||
|
# This file is part of unl0kr, hereafter referred to as the program.
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
|
||||||
/_build
|
/_build
|
||||||
|
.vscode
|
||||||
|
|
|
||||||
|
|
@ -70,13 +70,13 @@ For development and testing you can run the app in a VT. Unless your user accoun
|
||||||
|
|
||||||
```
|
```
|
||||||
$ meson _build
|
$ meson _build
|
||||||
$ meson compile -C build
|
$ meson compile -C _build
|
||||||
# with meson <0.55, use ninja directly:
|
|
||||||
$ ninja -C _build
|
|
||||||
$ sudo chvt 2
|
$ sudo chvt 2
|
||||||
$ sudo ./_build/unl0kr
|
$ sudo ./_build/unl0kr
|
||||||
```
|
```
|
||||||
|
|
||||||
|
With meson <0\.55 use `ninja` instead of `meson compile`\.
|
||||||
|
|
||||||
## Fonts
|
## Fonts
|
||||||
|
|
||||||
In order to work with [LVGL], fonts need to be converted to bitmaps, stored as C arrays. Unl0kr currently uses a combination of the [Montserrat] font for text and the [FontAwesome] font for pictograms. For both fonts only limited character ranges are included to reduce the binary size. To (re)generate the C file containing the combined font, run the following command
|
In order to work with [LVGL], fonts need to be converted to bitmaps, stored as C arrays. Unl0kr currently uses a combination of the [Montserrat] font for text and the [FontAwesome] font for pictograms. For both fonts only limited character ranges are included to reduce the binary size. To (re)generate the C file containing the combined font, run the following command
|
||||||
|
|
|
||||||
52
find-lvgl-sources.sh
Executable file
52
find-lvgl-sources.sh
Executable file
|
|
@ -0,0 +1,52 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2021 Johannes Marbach
|
||||||
|
#
|
||||||
|
# This file is part of unl0kr, hereafter referred to as the program.
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
|
||||||
|
while read -r makefile; do
|
||||||
|
while read -r expr; do
|
||||||
|
# Ignore example code
|
||||||
|
if [[ $(dirname $makefile) =~ .*/examples ]]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Handle full & relative paths
|
||||||
|
if [[ $expr =~ .*\$\(LVGL_DIR ]]; then
|
||||||
|
expr=$(echo "$expr" \
|
||||||
|
| sed 's|$(LVGL_DIR)/||g' \
|
||||||
|
| sed 's|$(LVGL_DIR_NAME)/|lvgl/|g' \
|
||||||
|
| sed 's|$(LV_DRIVERS_DIR_NAME)/|lv_drivers/|g')
|
||||||
|
else
|
||||||
|
expr="$(dirname $makefile)/$expr"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Resolve $(wildcard ...)
|
||||||
|
expr=$(echo "$expr" | sed 's|$(wildcard\s*\(.*\))|\1|g')
|
||||||
|
|
||||||
|
# Resolve $(shell ...)
|
||||||
|
if [[ $expr =~ \$\(shell ]]; then
|
||||||
|
expr=$(echo "$expr" | sed 's|$(shell\s*\(.*\))|\1|g')
|
||||||
|
expr=$(eval "$expr")
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Resolve wildcards
|
||||||
|
for file in $expr; do
|
||||||
|
echo $file
|
||||||
|
done
|
||||||
|
done < <(grep "^CSRCS\s*+=" "$makefile" | sed "s|.*=\s*||g")
|
||||||
|
done < <(find "$1" -name "*.mk")
|
||||||
145
meson.build
145
meson.build
|
|
@ -19,9 +19,9 @@
|
||||||
project(
|
project(
|
||||||
'unl0kr',
|
'unl0kr',
|
||||||
'c',
|
'c',
|
||||||
version : '0.0.0',
|
version: '0.0.0',
|
||||||
default_options : 'warning_level=1',
|
default_options: 'warning_level=1',
|
||||||
meson_version : '>=0.53.0'
|
meson_version: '>=0.53.0'
|
||||||
)
|
)
|
||||||
|
|
||||||
unl0kr_sources = [
|
unl0kr_sources = [
|
||||||
|
|
@ -37,142 +37,15 @@ squeek2lvgl_sources = [
|
||||||
'squeek2lvgl/sq2lv.c',
|
'squeek2lvgl/sq2lv.c',
|
||||||
]
|
]
|
||||||
|
|
||||||
lvgl_sources = [
|
lvgl_sources = run_command('find-lvgl-sources.sh', 'lvgl').stdout().strip().split('\n')
|
||||||
'lvgl/src/core/lv_disp.c',
|
|
||||||
'lvgl/src/core/lv_event.c',
|
lv_drivers_sources = run_command('find-lvgl-sources.sh', 'lv_drivers').stdout().strip().split('\n')
|
||||||
'lvgl/src/core/lv_group.c',
|
|
||||||
'lvgl/src/core/lv_indev.c',
|
|
||||||
'lvgl/src/core/lv_indev_scroll.c',
|
|
||||||
'lvgl/src/core/lv_obj.c',
|
|
||||||
'lvgl/src/core/lv_obj_class.c',
|
|
||||||
'lvgl/src/core/lv_obj_draw.c',
|
|
||||||
'lvgl/src/core/lv_obj_pos.c',
|
|
||||||
'lvgl/src/core/lv_obj_scroll.c',
|
|
||||||
'lvgl/src/core/lv_obj_style.c',
|
|
||||||
'lvgl/src/core/lv_obj_style_gen.c',
|
|
||||||
'lvgl/src/core/lv_obj_tree.c',
|
|
||||||
'lvgl/src/core/lv_refr.c',
|
|
||||||
'lvgl/src/core/lv_theme.c',
|
|
||||||
'lvgl/src/draw/lv_draw_arc.c',
|
|
||||||
'lvgl/src/draw/lv_draw_blend.c',
|
|
||||||
'lvgl/src/draw/lv_draw_img.c',
|
|
||||||
'lvgl/src/draw/lv_draw_label.c',
|
|
||||||
'lvgl/src/draw/lv_draw_line.c',
|
|
||||||
'lvgl/src/draw/lv_draw_mask.c',
|
|
||||||
'lvgl/src/draw/lv_draw_rect.c',
|
|
||||||
'lvgl/src/draw/lv_draw_triangle.c',
|
|
||||||
'lvgl/src/draw/lv_img_buf.c',
|
|
||||||
'lvgl/src/draw/lv_img_cache.c',
|
|
||||||
'lvgl/src/draw/lv_img_decoder.c',
|
|
||||||
'lvgl/src/extra/layouts/flex/lv_flex.c',
|
|
||||||
'lvgl/src/extra/layouts/grid/lv_grid.c',
|
|
||||||
'lvgl/src/extra/lv_extra.c',
|
|
||||||
'lvgl/src/extra/others/snapshot/lv_snapshot.c',
|
|
||||||
'lvgl/src/extra/themes/basic/lv_theme_basic.c',
|
|
||||||
'lvgl/src/extra/themes/default/lv_theme_default.c',
|
|
||||||
'lvgl/src/extra/themes/mono/lv_theme_mono.c',
|
|
||||||
'lvgl/src/extra/widgets/animimg/lv_animimg.c',
|
|
||||||
'lvgl/src/extra/widgets/calendar/lv_calendar.c',
|
|
||||||
'lvgl/src/extra/widgets/calendar/lv_calendar_header_arrow.c',
|
|
||||||
'lvgl/src/extra/widgets/calendar/lv_calendar_header_dropdown.c',
|
|
||||||
'lvgl/src/extra/widgets/chart/lv_chart.c',
|
|
||||||
'lvgl/src/extra/widgets/colorwheel/lv_colorwheel.c',
|
|
||||||
'lvgl/src/extra/widgets/imgbtn/lv_imgbtn.c',
|
|
||||||
'lvgl/src/extra/widgets/keyboard/lv_keyboard.c',
|
|
||||||
'lvgl/src/extra/widgets/led/lv_led.c',
|
|
||||||
'lvgl/src/extra/widgets/list/lv_list.c',
|
|
||||||
'lvgl/src/extra/widgets/meter/lv_meter.c',
|
|
||||||
'lvgl/src/extra/widgets/msgbox/lv_msgbox.c',
|
|
||||||
'lvgl/src/extra/widgets/span/lv_span.c',
|
|
||||||
'lvgl/src/extra/widgets/spinbox/lv_spinbox.c',
|
|
||||||
'lvgl/src/extra/widgets/spinner/lv_spinner.c',
|
|
||||||
'lvgl/src/extra/widgets/tabview/lv_tabview.c',
|
|
||||||
'lvgl/src/extra/widgets/tileview/lv_tileview.c',
|
|
||||||
'lvgl/src/extra/widgets/win/lv_win.c',
|
|
||||||
'lvgl/src/font/lv_font.c',
|
|
||||||
'lvgl/src/font/lv_font_dejavu_16_persian_hebrew.c',
|
|
||||||
'lvgl/src/font/lv_font_fmt_txt.c',
|
|
||||||
'lvgl/src/font/lv_font_loader.c',
|
|
||||||
'lvgl/src/font/lv_font_montserrat_10.c',
|
|
||||||
'lvgl/src/font/lv_font_montserrat_12.c',
|
|
||||||
'lvgl/src/font/lv_font_montserrat_12_subpx.c',
|
|
||||||
'lvgl/src/font/lv_font_montserrat_14.c',
|
|
||||||
'lvgl/src/font/lv_font_montserrat_16.c',
|
|
||||||
'lvgl/src/font/lv_font_montserrat_18.c',
|
|
||||||
'lvgl/src/font/lv_font_montserrat_20.c',
|
|
||||||
'lvgl/src/font/lv_font_montserrat_22.c',
|
|
||||||
'lvgl/src/font/lv_font_montserrat_24.c',
|
|
||||||
'lvgl/src/font/lv_font_montserrat_26.c',
|
|
||||||
'lvgl/src/font/lv_font_montserrat_28.c',
|
|
||||||
'lvgl/src/font/lv_font_montserrat_28_compressed.c',
|
|
||||||
'lvgl/src/font/lv_font_montserrat_30.c',
|
|
||||||
'lvgl/src/font/lv_font_montserrat_32.c',
|
|
||||||
'lvgl/src/font/lv_font_montserrat_34.c',
|
|
||||||
'lvgl/src/font/lv_font_montserrat_36.c',
|
|
||||||
'lvgl/src/font/lv_font_montserrat_38.c',
|
|
||||||
'lvgl/src/font/lv_font_montserrat_40.c',
|
|
||||||
'lvgl/src/font/lv_font_montserrat_42.c',
|
|
||||||
'lvgl/src/font/lv_font_montserrat_44.c',
|
|
||||||
'lvgl/src/font/lv_font_montserrat_46.c',
|
|
||||||
'lvgl/src/font/lv_font_montserrat_48.c',
|
|
||||||
'lvgl/src/font/lv_font_montserrat_8.c',
|
|
||||||
'lvgl/src/font/lv_font_simsun_16_cjk.c',
|
|
||||||
'lvgl/src/font/lv_font_unscii_16.c',
|
|
||||||
'lvgl/src/font/lv_font_unscii_8.c',
|
|
||||||
'lvgl/src/hal/lv_hal_disp.c',
|
|
||||||
'lvgl/src/hal/lv_hal_indev.c',
|
|
||||||
'lvgl/src/hal/lv_hal_tick.c',
|
|
||||||
'lvgl/src/misc/lv_anim.c',
|
|
||||||
'lvgl/src/misc/lv_anim_timeline.c',
|
|
||||||
'lvgl/src/misc/lv_area.c',
|
|
||||||
'lvgl/src/misc/lv_async.c',
|
|
||||||
'lvgl/src/misc/lv_bidi.c',
|
|
||||||
'lvgl/src/misc/lv_color.c',
|
|
||||||
'lvgl/src/misc/lv_fs.c',
|
|
||||||
'lvgl/src/misc/lv_gc.c',
|
|
||||||
'lvgl/src/misc/lv_ll.c',
|
|
||||||
'lvgl/src/misc/lv_log.c',
|
|
||||||
'lvgl/src/misc/lv_math.c',
|
|
||||||
'lvgl/src/misc/lv_mem.c',
|
|
||||||
'lvgl/src/misc/lv_printf.c',
|
|
||||||
'lvgl/src/misc/lv_style.c',
|
|
||||||
'lvgl/src/misc/lv_style_gen.c',
|
|
||||||
'lvgl/src/misc/lv_templ.c',
|
|
||||||
'lvgl/src/misc/lv_timer.c',
|
|
||||||
'lvgl/src/misc/lv_tlsf.c',
|
|
||||||
'lvgl/src/misc/lv_txt.c',
|
|
||||||
'lvgl/src/misc/lv_txt_ap.c',
|
|
||||||
'lvgl/src/misc/lv_utils.c',
|
|
||||||
'lvgl/src/widgets/lv_arc.c',
|
|
||||||
'lvgl/src/widgets/lv_bar.c',
|
|
||||||
'lvgl/src/widgets/lv_btn.c',
|
|
||||||
'lvgl/src/widgets/lv_btnmatrix.c',
|
|
||||||
'lvgl/src/widgets/lv_canvas.c',
|
|
||||||
'lvgl/src/widgets/lv_checkbox.c',
|
|
||||||
'lvgl/src/widgets/lv_dropdown.c',
|
|
||||||
'lvgl/src/widgets/lv_img.c',
|
|
||||||
'lvgl/src/widgets/lv_label.c',
|
|
||||||
'lvgl/src/widgets/lv_line.c',
|
|
||||||
'lvgl/src/widgets/lv_objx_templ.c',
|
|
||||||
'lvgl/src/widgets/lv_roller.c',
|
|
||||||
'lvgl/src/widgets/lv_slider.c',
|
|
||||||
'lvgl/src/widgets/lv_switch.c',
|
|
||||||
'lvgl/src/widgets/lv_table.c',
|
|
||||||
'lvgl/src/widgets/lv_textarea.c',
|
|
||||||
|
|
||||||
'lv_drivers/display/drm.c',
|
|
||||||
'lv_drivers/display/fbdev.c',
|
|
||||||
'lv_drivers/gtkdrv/gtkdrv.c',
|
|
||||||
'lv_drivers/indev/evdev.c',
|
|
||||||
'lv_drivers/indev/libinput.c',
|
|
||||||
'lv_drivers/indev/xkb.c',
|
|
||||||
]
|
|
||||||
|
|
||||||
executable(
|
executable(
|
||||||
'unl0kr',
|
'unl0kr',
|
||||||
sources : lvgl_sources + squeek2lvgl_sources + unl0kr_sources,
|
sources: unl0kr_sources + squeek2lvgl_sources + lvgl_sources + lv_drivers_sources,
|
||||||
include_directories : ['lvgl', 'lv_drivers'],
|
include_directories: ['lvgl', 'lv_drivers'],
|
||||||
dependencies : [
|
dependencies: [
|
||||||
dependency('xkbcommon'),
|
dependency('xkbcommon'),
|
||||||
dependency('libinput'),
|
dependency('libinput'),
|
||||||
]
|
]
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue