I’m working through updating a SquareLine project from LVGL8 to LVGL9, and decided to record a list for posterity’s sake. I’ll update it as I find more.
- Backup everything! I saved everything in git so I have a breadcrumb trail.
- For each font, click “Modify”. This fixes any font C files which may have been generated with an older
#if LV_VERSION_CHECK(8, 0, 0)instead of#if LVGL_VERSION_MAJOR >= 8 - Reduce any 8bpp to 4bpp or below and click “Modify”. It seems LVGL9 doesn’t support 8bpp fonts anymore
- If using ‘16 bit swap’ display format, LVGL9 seems to work differently now, so you’ll need to use ‘16 bit’ and handle the swap in the display driver.
- Uncheck “Animation Time” from any applicable widgets. See Checking "Animation Time" crashes with LVGL9
- Change the project setting from LVGL 8 to LVGL 9
- Review SquareLine project UI - a few widgets may layout differently, but most seems to convert ok.
- Export the project sources
- Update LVGL input and display drivers
- Update event handlers. For me, this was mostly replacing
e->targetwithlv_event_get_target(e)There is also thelv_api_map_v8.hheader that maps some but not all of the old APIs to the new APIs. - Try and compile
