-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
pkg/lvgl: bump to 8.2.0 #17681
pkg/lvgl: bump to 8.2.0 #17681
Conversation
d512b0b
to
2017f3a
Compare
9dd31fd
to
980b06d
Compare
Can we maybe select from our modules the required symbols in LVGL's Kconfig? |
Yes that's an option, I'll give it a try |
68c9a1e should do that: the unused widgets are correctly unchecked and the ones selected via modules are correctly selected in the menuconfig UI. But then the build fails because the defines 'LV_USE_' are missing, so internally it seems that lvgl enables them still. Is there a way to force the symbol to be defined to 0 if unchecked ? (Maybe I'm wrong because I'm missing something). |
Hmm I can't reproduce the build fail locally, but I see the undefined symbols in menuconfig. That makes sense, as the Kconfig file in the package is not downloaded yet, because the build system does not know that we want to use it. This would not change with the completion of the migration so we should think what is the best way to deal with external Kconfig files. Although at first I thought that the approach of sourcing it from the build directory was great and transparent, it will not work when using dependency resolution with Kconfig (the package is downloaded only after). One option I can think right now would be to have our own version of the upstream Kconfig, with the changes needed by the build system. |
Weird, after running menuconfig, the build of |
I'm wondering if that doesn't come from a bug on their side, it builds just fine with the following change; diff --git a/pkg/lvgl/Makefile.include b/pkg/lvgl/Makefile.include
index f900ae4af1..665c7cfe1f 100644
--- a/pkg/lvgl/Makefile.include
+++ b/pkg/lvgl/Makefile.include
@@ -40,3 +40,5 @@ PSEUDOMODULES += lvgl_widget_slider
PSEUDOMODULES += lvgl_widget_switch
PSEUDOMODULES += lvgl_widget_textarea
PSEUDOMODULES += lvgl_widget_table
+
+CFLAGS += -DCONFIG_LV_USE_SLIDER=0 |
Before I tested I removed the |
I already noticed that. How about we move the closing |
Looking at my build issue, it strongly feels like a problem in the lv_conf_internal.h header when Kconfig is used. The slider config, when not set still results on LV_USE_SLIDER being set to 1. Looking deeper, there are some inconsistencies upstream. I think I'll open a PR there. |
We could do that, but it would not solve the issue of the file not being there before downloading the package. As it is, the user would have to select the package, somehow trigger the fetch, and then open menuconfig again to configure the package. Also, those two steps would not work if configuring from a |
That would mean maintaining a 1k+ lines file. It would be nice if you could fetch it independent of the pkg mechanism. |
I totally agree, but the package is selected at configuration time, how could we fetch it before knowing we are going to source it? |
2eeed14
to
e60859a
Compare
Good question. Is it possible to add the Kconfig file as a dependency of menuconfig, and only when the package is included into the build ? Do you agree that this is out of the scope of this PR and should be addressed lately ? Otherwise, I added the change needed upstream as a patch, this way no need to wait for it to be merged and released. |
Hmm I don't think so, as the Kconfig tree is built once at the beginning of the configuration process (both when using
Yes, sure. I just pointed it out here because it is a design decision that we will have to make at some point, and this package is the perfect example.
👍🏼 |
dfa6588
to
c3b98c2
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM as well, just some questions, but things you can ignore.
c3b98c2
to
5c8fa29
Compare
In the last commits, I pushed changes to In terms of code size, the port of the v8 seems to move ROM requirements to RAM (3.5KB) in
v8:
master
v8:
master
|
ae07e40
to
e92a788
Compare
eba9b8a
to
58fc4d5
Compare
After some offline discussion, it was decided to keep lvgl v7 without using it in sample applications. To use the v7 version, just use |
58fc4d5
to
bed6285
Compare
Co-authored-by: Kaspar Schleiser <kaspar@schleiser.de> Co-authored-by: Koen Zandberg <koen@bergzand.net>
bed6285
to
cc26ded
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ACK, lets get this one in! I trust you have tested this one @aabadie since I do not have hardware at hand ATM.
BTW I tested on #16944 adapted to v8, works fine! |
Contribution description
This PR bumps the version of the LVGL package to 8.2.0. The sample test applications are adapted to the new API. Quite some changes were needed with this new version:
Open question: the management of widgets with RIOT modules makes the integration with the LVGL Kconfig a bit redundant since it also provides a different way to select widgets when using menuconfig. Since we didn't fully move to Kconfig, I had to keep a compatibility with make dependency resolution mecanism. It's still possible to configure LVGL via menuconfig to select the required widgets, but in the current situation, one also has to select corresponding RIOT modules explicitly. That's a drawback that will be fixed when we move to Kconfig but maybe there's a solution already ?
Testing procedure
tests/pkg_lvgl
andtests/pkg_lvgl_touch
are still working and should not increase (too much) memory consumption: tested with success on stm32f746g-disco. I get similar memory consumption results but one has to take care of the LVGL widgets/features included to the build.Issues/PRs references
None
Thanks to @kaspar030, @bergzand and @fjmolinas who helped me to move forward with this one.