fix: build errors on custom bin target names #1623
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The current ELF-copying behaviour assumes that the built artifact is named the same as the crate itself. This may not be true when using custom project structures.
Usually, when explicitly using a custom structure, devs know that they need to use the
--bin
option (or thebinary
field, programmatically). However, sometimes this can happen implicitly. For example, movingsrc/main.rs
tosrc/bin/hello.rs
implicitly creates abin
target namedhello
. Since this happens without explicitly configuringCargo.toml
, devs may not know they need to use--bin
. Also, since it works with the normalcargo build
users may expect it also works withcargo prove build
.This PR fixes it by utilizing the target collection logic added in #1620 to accurately identify the full path to the generated ELF.