Skip to content

v2.0.2

Choose a tag to compare

@mrhubbs mrhubbs released this 17 Aug 15:51
· 12 commits to master since this release
4d05fc7

Added

  • Debug logs to the LicenseService.
  • Any files in custom_data folder will be copied into the Editor preview. Allows adding arbitrary application or test data.
  • Experimental 馃И Ability to specify other projects to include like this in project.xml:
<folders>
    <!-- Specifying root project is optional, but allows for controlling the precedence of globals -->
    <folder path="."/>
    <folder path="./lib"/>
    <folder path="../common"/>
</folders>

NOTE: projects included in this way may in turn also use <folders>...</folders> to include other projects, but they will be ignored. This feature is only one-level deep.

NOTE: breaking any existing projects which use a component library must be updated to have a folders entry like <folder path="./lib"/>

NOTE: limitations Including other projects is not currently recursive. So if you have a root project A that includes project B which also includes project C, project C will actually be skipped and project B will probably not function.

NOTE: KNOWN ISSUE when switching between projects that both include other projects, include paths will be stale. The first time exporting code and compiling, there will be errors. This is fixed by simply exporting code a second time. This will be fixed soon in a future release.

Changed

  • New project creation flow to clarify how to create a new project that will support Figma import.
  • CMake-related: various changes to streamline compiling an Editor project to target, using our generated CMake-config:
    • Make linking of the Editor internal lvrt project optional. This isn't needed on target.
    • Make LVGL linking more flexible.
    • Code export will no longer emit component_lib_list_gen.cmake - you can delete it. It's replaced by included_projects_gen.cmake, which is only emitted when a project actually declares included projects via <folders> in project.xml.
  • BREAKING: The LVGL XML engine requires a certain order in widgets/components/globals. Fonts/images/consts must be defined before styles, and styles before view. Without this, the Preview would output runtime errors and fail to properly render styles/fonts. These issues are now checked by XML validation and explicit errors given.

Fixed

  • Code export casts a const-qualified value passed to a void * argument, so the generated C compiles without warnings.
    • An event's user_data fed from an API prop (user_data="$device", or the same prop in a { ... } expression) is emitted as (void *)device; string literals, NULL and non-pointer values are unchanged, so a genuinely wrong type still gets flagged by the compiler.
    • A <pointer> subject's value is emitted as (void *)img_bell, since images generate as const void * while lv_subject_init_pointer() takes a plain void *.
  • Exported *_gen.c guards permanent screen creation with #if defined(LV_USE_XML) && LV_USE_XML == 0. LVGL 9.5 removed the lv_xml module, so LV_USE_XML is undefined when building outside the Editor. The guard is false, screens are never created, and the app crashes.
  • Permanent screens are guarded with #if !defined(LV_USE_XML) || LV_USE_XML == 0 so it fires when the macro is absent or explicitly 0. Inside the Editor (LV_USE_XML == 1 behavior is unchanged, screens are still created from XML.
  • Prefix all generated header guards with LVGL_PRO_ to avoid collisions with similar names (for example, a list component could conflict with list header file from a 3rd-party or platform library).
  • Screen name from XML was not used in generating header guard - filename was used instead.
  • lv_obj radio_button prop. Was incorrectly mapped as a flag when it is a boolean property - making it unusable.