Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extensible compiler querying #6931

Open
Colengms opened this issue Feb 8, 2021 · 8 comments
Open

Extensible compiler querying #6931

Colengms opened this issue Feb 8, 2021 · 8 comments

Comments

@Colengms
Copy link
Collaborator

Colengms commented Feb 8, 2021

To support compilers cpptools does not know how to query for system includes and system defines, perhaps the compiler querying logic could be separated out into user-serviceable definition files. Users with unsupported compilers would have the option of composing their own compiler-query-definition file, and provide all of the necessary information to query the compiler for system include paths and system defines, and translate args for defines and includes, as well as args that should influence how the IntellIiSense process is configured (language standard, IntelliSenseMode).

@sean-mcmanus
Copy link
Collaborator

I'm not sure what the "definition files" would be. One current workaround is to provide a compiler or script that mimics the output we except from gcc/clang compilers.

@Colengms
Copy link
Collaborator Author

In addition to needing a way to query unknown compilers for system includes and system defines, there is also the fact that scanning the command line for user includes and defines may fail due to an unknown command line syntax. I guess I'm proposing making both the compiler querying and command line arg parsing logic 'data driven' rather than hard-coded, and providing a way for users to add support for additional compilers by composing their own data to drive those operations.

@github-actions github-actions bot modified the milestones: Triage, Backlog Feb 17, 2021
@github-actions
Copy link

This feature request has received enough votes to be added to our backlog.

@ytsarko
Copy link

ytsarko commented Jul 27, 2022

Hi @sean-mcmanus and @Colengms,

As of moment of writing this feature request is in Backlog. Are there any plans to start working on it? When tentatively?

It will be really cool to have it implemented so that users will be able to configure currently unsupported compilers without your support. This is especially true for different proprietary compilers that require special licenses or NDAs.

@sean-mcmanus
Copy link
Collaborator

If/when we have a tentative plan we would add it to specific milestone.

@bobbrow bobbrow added this to Triage in 1.15 via automation Mar 6, 2023
@bobbrow bobbrow modified the milestones: Backlog, On Deck Mar 6, 2023
@bobbrow bobbrow moved this from Triage to In progress in 1.15 Mar 14, 2023
@bobbrow bobbrow added this to Triage in 1.16 via automation Mar 21, 2023
@bobbrow bobbrow moved this from Triage to In progress in 1.16 Apr 18, 2023
@bobbrow bobbrow removed this from In progress in 1.15 Apr 25, 2023
@Colengms Colengms mentioned this issue May 8, 2023
27 tasks
@bobbrow bobbrow added this to Triage in 1.17 via automation Jun 27, 2023
@bobbrow bobbrow removed this from In progress in 1.16 Jun 27, 2023
@bobbrow bobbrow moved this from Triage to In progress in 1.17 Jul 11, 2023
@bobbrow bobbrow added this to Triage in 1.18 via automation Aug 7, 2023
@bobbrow bobbrow moved this from Triage to In progress in 1.18 Aug 8, 2023
@bobbrow bobbrow removed this from In progress in 1.17 Aug 17, 2023
@bobbrow bobbrow added this to Triage in 1.19 via automation Oct 18, 2023
@bobbrow bobbrow removed this from In progress in 1.18 Oct 31, 2023
@bobbrow bobbrow moved this from Triage to In progress in 1.19 Nov 6, 2023
@bobbrow bobbrow removed this from In progress in 1.19 Nov 6, 2023
@bobbrow bobbrow added this to Triage in 1.20 via automation Nov 6, 2023
@bobbrow bobbrow added this to Triage in 1.19 via automation Nov 6, 2023
@bobbrow bobbrow removed this from Triage in 1.20 Jan 30, 2024
@bobbrow bobbrow added this to Triage in 1.21 via automation Jan 30, 2024
@bobbrow bobbrow removed this from Triage in 1.19 Jan 30, 2024
@bobbrow
Copy link
Member

bobbrow commented Feb 28, 2024

Tagging a few compiler issues that may benefit from this feature. #11852 #7653 #7146 #6798 #6677 #6642 #3222 #2499

@KnoerleMaTLS
Copy link

I'm not sure what the "definition files" would be. One current workaround is to provide a compiler or script that mimics the output we except from gcc/clang compilers.

@sean-mcmanus, since this feature is still not available yet it would be awesome if you could provide more information about the workaround you mentioned. Especially the script part would be interesting, since this already looks like the initial feature request of this issue.
This is really a huge and painful issue for the embedded development world.

@KnoerleMaTLS
Copy link

Furthermore the requested feature should not be that hard to implement, imho.
Please correct me if I'm wrong.

This seems to be the compiler query process in my use case:
image

I don't know if there's more magic going on that isn't visible, but if not, a simple solution might look like this:

Step 1:
Introduce a new setting to the extension which provides the option to select to use a local configuration file for compiler configuration or use the actual default detection mechanism (default).

Step 2:
Publish a json schema which must be fulfilled by the user if he want to provide the compiler configuration by himself.

Step 3:
You are done and have satisfied dozens of users.

I really don't understand why such a crucial feature is still not implemented three years later.
Does no one develop embedded systems that use a microcontroller these days?

@bobbrow bobbrow added this to Triage in On Deck via automation May 13, 2024
@bobbrow bobbrow removed this from Triage in 1.21 May 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
On Deck
Triage
Development

No branches or pull requests

6 participants