New WidgetRegistry - Only include non disabled widgets in the compiled binary #319
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Current Issue:
As we add more widgets, our compiled binary grows because every widget is included in the compilation, even disabled ones.
Solution:
This change moves widget registration out of
main.cppand into a dedicated file (WidgetRegistry.cpp). Now:main.cppis cleaner—it just needs to callregisterWidgets(widgetSet, sm, config).This change also adds a couple build flags to the platformio.ini to help reduce the final binary size by eliminating unused code and data. And also switches the platformio.ini to use extends.
How to Add a New Widget:
WidgetRegistry.cppandconfig.system.h.This makes the build more efficient and keeps the codebase better organized.