I note on github and in a recent thread that the mm-iot-esp32 repo will be deprecated in favor of the esp-idf morsemicro/halow component.
On Ubuntu/Linux using ESP-IDF 5.5.3 (although I can consistently reproduce the issue on different versions and in windows) I get the following build error (out of the box to speak)
CMake Error at managed_components/morsemicro__halow/components/shims/CMakeLists.txt:37 (add_dependencies):
The dependency target “idf::firmware” of target “shims” does not exist.CMake Error at managed_components/morsemicro__halow/components/shims/CMakeLists.txt:24 (target_link_libraries):
Target “shims” links to:idf::firmwarebut the target was not found. Possible reasons include:
* There is a typo in the target name. * A find_package call is missing for an IMPORTED target. * An ALIAS target is missing.
To reproduce this, I simply create a new folder and fetch the porting assistance example:
idf.py create-project-from-example “morsemicro/halow=2.10.4-esp32-1:porting_assistant”
cd porting_assistant
idf.py build
If I have a poke around in managed_components/morsemicro__halow/components/shims/CMakeLists.txt has reference to link the “idf::firmware” library:
target_link_libraries(shims PUBLIC
idf::firmware
idf::log
idf::driver
idf::mbedtls
idf::esp_timer
)
target_link_libraries(shims PUBLIC
morselib
mmutils
)
add_dependencies(shims morselib idf::firmware)
I assume the idf::firmware should link in the morse micro firmware library.
And if I look in my build folder build/esp-idf/ it looks like the morse firmware is called morsemicro__firmware.
And hence if I replace any reference to idf::firmware with idf::morsemicro__firmware in the above CMakeLists.txt file it builds successfully - and executes successfully on my ESP32-S3 target.
(o.k., after also changing the permissions on morsemicro__halow/components/mm-iot-sdk/framework/tools/buildsystem/librarymangler.py to allow execution)
Am I doing anything wrong with my setup or is this a bug in the build?