mirror of
https://github.com/espressif/esp-idf.git
synced 2026-04-27 19:13:21 +00:00
638444f0fd
The commitf951ae5b18("feat(cmakev2): Added component validation checks for ...") introduced support for validating component sources and include directories. It heavily relies on iterating through the registered components to obtain their properties. For instance, it examines all components for each component source file to ensure that the source files do not originate from other components. However, it turns out that `idf_component_get_property` is a bottleneck in this process, causing reconfiguration to take 3-4 times longer than before the introduction of this check. Since we know of all the component interfaces, we can bypass the checks performed by `idf_component_get_property` and instead use the raw version, `__idf_component_get_property_unchecked`, which operates much faster. Following are hello_world example reconfigure times before and after. before: -- Configuring done (11.1s) -- Generating done (0.2s) after: -- Configuring done (3.9s) -- Generating done (0.2s) A new library property LIBRARY_COMPONENT_INTERFACES_LINKED is added that keeps component interfaces linked to the library. Fixes:f951ae5b18("feat(cmakev2): Added component validation checks for ..") Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>