Skip to content

Cargo should be able to conditionally build targets #6617

Closed as not planned
Closed as not planned
@asomers

Description

@asomers

Describe the problem you are trying to solve
Some targets, especially [[test]] targets, don't make sense to run on every platform. Cargo should allow you to conditionally enable them in the manifest. On Nix this merely causes an annoyance; some tests must have their entire bodies #[cfg()]ed out. But on libc the problem is more severe; the s390x and sparc64 targets crash in the test harness before executing any tests. There's no way to fix that problem from within test code itself; a Cargo solution is required.

Describe the solution you'd like
It would be great if the [[test]] section could be conditionally enabled, like this:

[[test]]
name = "test-something"
only-on = 'cfg(target_os = "multics")'

or this:

[[test.'cfg(target_os = "multics")']]
name = "test-something"

Notes
Here's a PR that shows s390x and sparc64 failing early in the test harness.
rust-lang/libc#1235

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-cross-compilingArea: using --target flag for other platformsC-feature-requestCategory: proposal for a feature. Before PR, ping rust-lang/cargo if this is not `Feature accepted`

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions