[native_toolchain_c] Tool variants
- Dominant language
- Dart
- Stars
- 275
- Forks
- 144
- Avg merge
- 2d 10h
- Merged PRs (30d)
- 47
Description
Currently, our `Tool`s are considered equal if they represent the same conceptual tool. E.g. `clang` is the same conceptual tool whether it's the one for the host OS and the one for Android. `ToolInstance`s are only equal if they point to the actual identical uri and identical version.
Some middle ground could be something like a `ToolVariant`.
Currently the only variants I have encountered have to do with the `Target` architecture and operating system:
* clang: for host and Android.
* GCC: for cross compiling.
* MSVC tools: per target architecture (also per _host_ architecture).
We might need to address this to do a better job in the Tool Recognizers when Dart/Flutter passes us just a Uri of an executable and we don't know which tool variant this is.
Contributor guide
Assessment
This issue has not been assessed yet.