From 8f97181ea7dbf3ae5d31b7060f5a371d4f0ecb1c Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Wed, 29 Nov 2017 16:07:11 +0200 Subject: [PATCH] Add "__GNUC__" macro by default for VSCode https://github.com/platformio/platformio-vscode-ide/issues/54 --- platformio/builder/tools/pioide.py | 4 +++- platformio/builder/tools/piomisc.py | 7 ++++++- .../ide/tpls/vscode/.vscode/c_cpp_properties.json.tpl | 4 ++++ 3 files changed, 13 insertions(+), 2 deletions(-) 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" }