v2.0.2
Added
- Debug logs to the LicenseService.
- Any files in
custom_datafolder 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
lvrtproject 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 byincluded_projects_gen.cmake, which is only emitted when a project actually declares included projects via<folders>inproject.xml.
- Make linking of the Editor internal
- 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_datafed from an API prop (user_data="$device", or the same prop in a{ ... }expression) is emitted as(void *)device; string literals,NULLand 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 asconst void *whilelv_subject_init_pointer()takes a plainvoid *.
- An event's
- Exported *_gen.c guards permanent screen creation with
#if defined(LV_USE_XML) && LV_USE_XML == 0. LVGL 9.5 removed thelv_xmlmodule, soLV_USE_XMLis 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 == 0so it fires when the macro is absent or explicitly 0. Inside the Editor(LV_USE_XML == 1behavior 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_objradio_buttonprop. Was incorrectly mapped as a flag when it is a boolean property - making it unusable.