embassy icon indicating copy to clipboard operation
embassy copied to clipboard

How to depend on embassy (`embassy-time` duplicate linkages)?

Open wbrickner opened this issue 1 year ago • 1 comments

How am I intended to depend on the crates in this repo? I'm not very experienced with rust embedded.

After much slow battling, I've gotten a basic embassy demo to run on my esp32c3 board. I now want to do something more complex.

The trouble I continue to run into is that embassy-time is marked as linking a native library (I think this is not actually true, but used to prevent different incompatible features being activated which creates timer problems).

For example I try to depend on multiple crates from this repo (and others), like embassy-executor and embassy-net, but they both depend on embassy-time, and so I cannot build.

I already depend on this repo as a git dependency in my Cargo.toml file, repeated multiple times for the various crates I want to load from the workspace.

Selecting older versions from crates.io works, and the compiler emits no complaint about double linking embassy-time.

What is the correct way to depend on embassy_time::*, embassy_executor::*, embassy_net::*, etc. in my project?

Thank you

wbrickner avatar Dec 21 '23 19:12 wbrickner

You need to patch embassy_time in this case. If you're using a the executor, net, etc. with git = "..", rev = "git commit" it might be possible that you also need to depend on embassy-time the same way to avoid the issue. Sometimes this is necessary when the crates you use are not released yet and there's a difference between the Git and released versions.

elpiel avatar Dec 29 '23 11:12 elpiel