How cargo interact with git submodule?

I am using libbpf-sys in my project, I wonder how its build.rs works without something like git submodule update in it. Thanks.

Crates.io takes a snapshot of the directory on publish, not takes a git repository.

Thanks for the insight.

Cargo is actually aware of git submodules. You can add a dependency from a git repository instead of crates.io. In this case cargo will check out the repository and update the submodules automatically.