Convert --target to --filter-platform and pass it to cargo-metadata #2562
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.
An explicitly-specified target may simplify the dependency graph, i.e. crates unused on the target may be omitted. Cargo-fetch does this type of simplification and may pull fewer packages with --target argument.
maturin build doesn't pass the specified triple to cargo-metadata currently as --target isn't supported in cargo-metadata. When building reproducibly with cargo-fetch and --frozen argument, this could ultimately lead to a confusing and annoying dependency that cannot be resolved offline, since cargo-metadata has no idea about the target and cannot just drop the unnecessary dependency.
However, cargo-metadata does support --filter-platform since Cargo 1.40, which plays basically the same role as --target during dependency resolving. Let's translate --target to --filter-platform when calling cargo-metadata to handle the case.
Closes: #2561
This is the first time that I play with Rust, thanks for your patience and guide.