Dependency target "idf::firmware" does not exist [esp-idf component morsemicro/halow=2.10.4-esp32-1 ]

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::firmware

but 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?

We have a few test applications external to the package which were including morsemicro/halow in their idf_component.yml which seemed to work. I’m not sure how they did though - as the namespacing definitely looks incorrect. We’ll take this on as a bug :slight_smile:

after also changing the permissions on morsemicro__halow/components/mm-iot-sdk/framework/tools/buildsystem/librarymangler.py

Hm, it seems the library mangler has lost its permissions - either on push to the registry, or on pull via the idf.py.

Thanks for letting us know! We’re expecting some teething issues while we move to the registry

Thanks Arien.

I see 2.10.4-esp32-2 was posted a couple hours ago. I’ve tested a couple of the samples, and everything seems to be working well.

1 Like

Glad that solved it for you @craig !