conan-io / conan

Conan - The open-source C and C++ package manager
https://conan.io
MIT License
8.12k stars 964 forks source link

[feature] Add additional architectures for MCUs to the default settings.yml #13927

Open jwillikers opened 1 year ago

jwillikers commented 1 year ago

What is your suggestion?

Would it be possible to add additional architectures for embedded microcontrollers to the default settings.yml file? This would make it possible to support CI in Conan Center for recipe's targeting microcontrollers such as conan-io/conan-center-index#17528.

This particular recipe is focused on the Arm embedded architectures, which are almost always actually the thumb variations of the ISA instead of the arm forms. Rust has some helpful naming conventions for these: thumbv6m, thumbv7m, and thumbv7em, thumbv8m.base, and thumbv8m.main documented here. It's also possible to use GCC's naming conventions described here: armv6-m, armv7-m, armv7e-m, armv8.1-m.main, and armv8-m.main. Note that it is probably important to make the distinction between the thumb format and the arm format, though in practice the thumb format is used for microcontrollers.

Of course, the ISA's for microcontrollers have a lot more configurability, so properly defining everything would require a lot of subsettings to define the FPU, floating-point ABI, and extensions, though many of these could alternatively be defined by consumers directly via compiler and linker flags through the conf options for tools.build.*flags.

Have you read the CONTRIBUTING guide?

kammce commented 1 year ago

+1 to this idea.