Skip to content

Commit 459fe76

Browse files
docs: clarified how tools flavours are selected (#2260)
* docs: Clearifiesd how tools flavours are selected * Update docs/package_index_json-specification.md Co-authored-by: Alessio Perugini <[email protected]> --------- Co-authored-by: Alessio Perugini <[email protected]>
1 parent e9c7d86 commit 459fe76

File tree

1 file changed

+51
-13
lines changed

1 file changed

+51
-13
lines changed

Diff for: docs/package_index_json-specification.md

+51-13
Original file line numberDiff line numberDiff line change
@@ -151,19 +151,7 @@ package. There can be many different versions of the same tool available at the
151151
- (`arduino`, `avrdude`, `6.1`)
152152
- .....
153153

154-
Each tool version may come in different build flavours for different OS. Each flavour is listed under the `systems`
155-
array. In the example above `avr-gcc` comes with builds for:
156-
157-
- ARM Linux 32-bit (`arm-linux-gnueabihf`),
158-
- ARM Linux 64-bit (`aarch64-linux-gnu`),
159-
- macOS 64-bit (`x86_64-apple-darwin14`),
160-
- Windows (`i686-mingw32`),
161-
- Linux 32-bit (`i686-linux-gnu`),
162-
- Linux 64-bit (`x86_64-linux-gnu`)
163-
164-
The IDE will take care to install the right flavour based on the `host` value, or fail if a needed flavour is
165-
missing.<br> Note that this information is not used to select the toolchain during compilation. If you want this
166-
specific version to be used, you should use the notation `{runtime.tools.TOOLNAME-VERSION.path}` in the platform.txt.
154+
The `systems` field lists all available [Tools Flavours](#tools-flavours-available-builds-made-for-different-os).
167155

168156
The other fields are:
169157

@@ -176,6 +164,56 @@ The other fields are:
176164
macOS you can use the command `shasum -a 256 filename` to generate SHA-256 checksums. There are free options for
177165
Windows, including md5deep. There are also online utilities for generating checksums.
178166

167+
#### Tools flavours (available builds made for different OS)
168+
169+
Each tool version may come in different build flavours for different OS. Each flavour is listed under the `systems`
170+
array. The IDE will take care to install the right flavour for the user's OS by matching the `host` value with the
171+
following table or fail if a needed flavour is missing.
172+
173+
| OS flavour | `host` regexp value | `host` suggested value |
174+
| ------------ | ------------------------------------- | ---------------------------------- |
175+
| Linux 32 | `i[3456]86-.*linux-gnu` | `i686-linux-gnu` |
176+
| Linux 64 | `x86_64-.*linux-gnu` | `x86_64-linux-gnu` |
177+
| Linux Arm | `arm.*-linux-gnueabihf` | `arm-linux-gnueabihf` |
178+
| Linux Arm64 | `(aarch64\|arm64)-linux-gnu` | `aarch64-linux-gnu` |
179+
| Windows 32 | `i[3456]86-.*(mingw32\|cygwin)` | `i686-mingw32` or `i686-cygwin` |
180+
| Windows 64 | `(amd64\|x86_64)-.*(mingw32\|cygwin)` | `x86_64-migw32` or `x86_64-cygwin` |
181+
| MacOSX 32 | `i[3456]86-apple-darwin.*` | `i686-apple-darwin` |
182+
| MacOSX 64 | `x86_64-apple-darwin.*` | `x86_64-apple-darwin` |
183+
| MacOSX Arm64 | `arm64-apple-darwin.*` | `arm64-apple-darwin` |
184+
| FreeBSD 32 | `i?[3456]86-freebsd[0-9]*` | `i686-freebsd` |
185+
| FreeBSD 64 | `amd64-freebsd[0-9]*` | `amd64-freebsd` |
186+
| FreeBSD Arm | `arm.*-freebsd[0-9]*` | `arm-freebsd` |
187+
188+
The `host` value is matched with the regexp, this means that a more specific value for the `host` field is allowed (for
189+
example you may write `x86_64-apple-darwin14.1` for MacOSX instead of the suggested `x86_64-apple-darwin`), by the way,
190+
we recommend to keep it simple and stick to the suggested value in the table.
191+
192+
Some OS allows to run different flavours:
193+
194+
| The OS... | ...may also run builds for |
195+
| ------------ | -------------------------- |
196+
| Windows 64 | Windows 32 |
197+
| MacOSX 64 | MacOSX 32 |
198+
| MacOSX Arm64 | MacOSX 64 or MacOSX 32 |
199+
200+
This is taken into account when the tools are downloaded (for example if we are on a Windows 64 machine and the needed
201+
tool is available only for the Windows 32 flavour, then the Windows 32 flavour will be downloaded and used).
202+
203+
For completeness, the previous example `avr-gcc` comes with builds for:
204+
205+
- ARM Linux 32 (`arm-linux-gnueabihf`),
206+
- ARM Linux 64 (`aarch64-linux-gnu`),
207+
- MacOSX 64 (`x86_64-apple-darwin14`),
208+
- Windows 32 (`i686-mingw32`),
209+
- Linux 32 (`i686-linux-gnu`),
210+
- Linux 64 (`x86_64-linux-gnu`)
211+
- MacOSX Arm64 will use the MacOSX 64 flavour
212+
- Windows 64 will use the Windows 32 flavour
213+
214+
Note: this information is not used to select the toolchain during compilation. If you want a specific version to be
215+
used, you should use the notation `{runtime.tools.TOOLNAME-VERSION.path}` in the platform.txt.
216+
179217
### Platforms definitions
180218

181219
Finally, let's see how `PLATFORMS` are made.

0 commit comments

Comments
 (0)