Custom Targets
If you'd like to build for a target that is not yet supported by rustc, you can use a
"custom target specification" to define a target. These target specification files
are JSON. To see the JSON for the host target, you can run:
rustc +nightly -Z unstable-options --print target-spec-json
To see it for a different target, add the --target flag:
rustc +nightly -Z unstable-options --target=wasm32-unknown-unknown --print target-spec-json
To use a custom target, see the (unstable) build-std feature of cargo.
Custom Target Lookup Path
When rustc is given an option --target=TARGET (where TARGET is any string), it uses the following logic:
- if
TARGETis the name of a built-in target, use that - if
TARGETis a path to a file, read that file as a json target - otherwise, search the colon-seperated list of directories found
in the
RUST_TARGET_PATHenvironment variable from left to right for a file namedTARGET.json.
These steps are tried in order, so if there are multple potentially valid interpretations for a target, whichever is found first will take priority. If none of these methods find a target, an error is thrown.