Skip to content

Add support for specifying separate C and C++ compiler paths and args #9266

Open
@Colengms

Description

@Colengms

Feature Request

Currently, we have compilerPath and compilerArgs fields in c_cpp_properties.json. Arguments (i.e. -std=c++20 vs -std=c17), and perhaps even the compiler itself (i.e. XC16), can be C or C++ specific. These field may be insufficient for users who want to mix C and C++ sources. The same issue exists for fields in custom configuration provider interfaces.

This feature request tracks separating compilerPath and compilerArgs into C and C++, so separate values for each can be provided. One backwards compatible approach would be to allow the existing fields to be overloaded with an object containing a separate value per language. For example:

"compilerPath": {
    "c": "/usr/bin/gcc",
    "cpp": "/usr/bin/g++"
},
"compilerArgs": {
    "c": [ "-std=c17" ],
    "cpp": [ "-std=c++20" ]
}

Related: #7534

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    No status

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions