Open-CMSIS-Pack / devtools

Open-CMSIS-Pack development tools - C++
Apache License 2.0
74 stars 55 forks source link

[projmgr] [buildmgr] Opportunity to introduce toolchain-independent configuration using the most common generic configurations #179

Closed VGRSTM closed 1 year ago

VGRSTM commented 2 years ago

Discussion initiated if https://github.com/Open-CMSIS-Pack/devtools/issues/120

https://github.com/Open-CMSIS-Pack/devtools/issues/120#issuecomment-1050612457 https://github.com/Open-CMSIS-Pack/devtools/issues/120#issuecomment-1050634268 https://github.com/Open-CMSIS-Pack/devtools/issues/120#issuecomment-1055457730

Sounds good to me to get dedicated issue to comment / amend on.

Discussion is about following yml schema contributions: https://github.com/Open-CMSIS-Pack/devtools/blob/main/tools/projmgr/schemas/common.schema.json

"OptimizeType": { "enum": [ "max", "size", "speed", "debug" ], "description": "Generic optimize levels (max, size, speed, debug) for code generation." }, "DebugType": { "enum": [ "on", "off" ], "description": "Generic control for the generation of debug information (on, off)." }, "WarningsType": { "enum": [ "no", "all", "Misra", "AC5-like" ], "description": "Control warnings (no, all, Misra, AC5-like)." },

ReinhardKeil commented 2 years ago

The is inline with proposal #315

tarek-bochkati commented 2 years ago

after the translation controls options addition (ie. optimize, debug, warnings), I have started supporting them into projmgr and buildmgr while doing that I had some notes which I need to share with you:

brondani commented 2 years ago

I would like to propose another control: the language standard for compilation.

LanguageC:
- c90
- gnu90
- c99
- gnu99
- c11
- gnu11

LanguageCPP:
- c++98
- gnu++98
- c++03
- gnu++03
- c++11
- gnu++11
- c++14
- gnu++14
- c++17
- gnu++17
VGRSTM commented 2 years ago

@brondani On one hand +1 on the other such just demonstrate we are going to end up with a gas plant according to me ... I may myself contribute to many more compilation control requirements thinking to support all end user / toolchains requirements.

If limited to https://github.com/Open-CMSIS-Pack/devtools/issues/179#issuecomment-1168696618 proposal already only here I would add:

LanguageC:

LanguageCPP:

VGRSTM commented 2 years ago

Despite mixed feeling about myself because pro & cons I would promote possibly another way to progress here. Feel free to consider or not ... just a proposal trying to unlock this issue.

First let's come back to pro & cons to my point of view per my understanding:

Such said my thinking would be rather to fight finding some commonalities across various toolchains, let's push black magic concept then. Instead promoting OptimizeType, DebugType, WarningType, LanguageType, .... let's promote only ProfileType.

"ProfileType": { "enum": [ "debug", "release", "debug_verbose", "release_targetSpeed", "release_targetSize" ], "description": "Generic target profiles abstracting various toolchain common setups" },

ReinhardKeil commented 1 year ago

I believe this is implemented now

ReinhardKeil commented 1 year ago

no further feedback - hence I'm closing it as it is covered in the tools. Raise specific issues on perhaps missing features.