diff --git a/platformio/builder/tools/pioide.py b/platformio/builder/tools/pioide.py index da40bef9..99aeda42 100644 --- a/platformio/builder/tools/pioide.py +++ b/platformio/builder/tools/pioide.py @@ -91,7 +91,9 @@ def DumpIDEData(env): "gdb_path": util.where_is_program(env.subst("$GDB"), env.subst("${ENV['PATH']}")), "prog_path": - env.subst("$PROG_PATH") + env.subst("$PROG_PATH"), + "compiler_type": + env.GetCompilerType() } env_ = env.Clone() diff --git a/platformio/builder/tools/piomisc.py b/platformio/builder/tools/piomisc.py index 98c28590..49136a1d 100644 --- a/platformio/builder/tools/piomisc.py +++ b/platformio/builder/tools/piomisc.py @@ -199,7 +199,8 @@ def _delete_file(path): pass -def GetCompilerType(env): +@util.memoized +def _get_compiler_type(env): try: sysenv = environ.copy() sysenv['PATH'] = str(env['ENV']['PATH']) @@ -216,6 +217,10 @@ def GetCompilerType(env): return None +def GetCompilerType(env): + return _get_compiler_type(env) + + def GetActualLDScript(env): def _lookup_in_ldpath(script): diff --git a/platformio/ide/tpls/vscode/.vscode/c_cpp_properties.json.tpl b/platformio/ide/tpls/vscode/.vscode/c_cpp_properties.json.tpl index ced616b7..db933c5a 100644 --- a/platformio/ide/tpls/vscode/.vscode/c_cpp_properties.json.tpl +++ b/platformio/ide/tpls/vscode/.vscode/c_cpp_properties.json.tpl @@ -30,7 +30,11 @@ % for define in defines: "{{!define.replace('"', '\\"')}}", % end +% if compiler_type == "gcc": + "__GNUC__" +% else: "" +% end ], "intelliSenseMode": "clang-x64" }