about summary refs log tree commit diff
path: root/src/doc/rustc
diff options
context:
space:
mode:
authorNoratrieb <48135649+Noratrieb@users.noreply.github.com>2025-07-26 12:39:31 +0200
committerNoratrieb <48135649+Noratrieb@users.noreply.github.com>2025-09-12 20:53:28 +0200
commitf157ce994ea45e9faea9eff89c5f8b3d4ea77b6e (patch)
treeea0f0bdfa8bb940eeb9f2dff68076bf3d7082d77 /src/doc/rustc
parenta0bb9cc57db551289cba9fefde086e45cb82733f (diff)
downloadrust-f157ce994ea45e9faea9eff89c5f8b3d4ea77b6e.tar.gz
rust-f157ce994ea45e9faea9eff89c5f8b3d4ea77b6e.zip
Add --print target-spec-json-schema
This schema is helpful for people writing custom target spec JSON. It
can provide autocomplete in the editor, and also serves as documentation
when there are documentation comments on the structs, as `schemars` will
put them in the schema.
Diffstat (limited to 'src/doc/rustc')
-rw-r--r--src/doc/rustc/src/targets/custom.md15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/doc/rustc/src/targets/custom.md b/src/doc/rustc/src/targets/custom.md
index 6c1494186a4..e1750e27f0b 100644
--- a/src/doc/rustc/src/targets/custom.md
+++ b/src/doc/rustc/src/targets/custom.md
@@ -16,6 +16,21 @@ rustc +nightly -Z unstable-options --target=wasm32-unknown-unknown --print targe
 
 To use a custom target, see the (unstable) [`build-std` feature](../../cargo/reference/unstable.html#build-std) of `cargo`.
 
+<div class="warning">
+
+The target JSON properties are not stable and subject to change.
+Always pin your compiler version when using custom targets!
+
+</div>
+
+## JSON Schema
+
+`rustc` provides a JSON schema for the custom target JSON specification.
+Because the schema is subject to change, you should always use the schema from the version of rustc which you are passing the target to.
+
+It can be found in `etc/target-spec-json-schema.json` in the sysroot (`rustc --print sysroot`) or printed with `rustc +nightly -Zunstable-options --print target-spec-json-schema`.
+The existence and name of this schema is, just like the properties of the JSON specification, not stable and subject to change.
+
 ## Custom Target Lookup Path
 
 When `rustc` is given an option `--target=TARGET` (where `TARGET` is any string), it uses the following logic: