-
Notifications
You must be signed in to change notification settings - Fork 1
/
c_cpp_properties.py
57 lines (41 loc) · 1.58 KB
/
c_cpp_properties.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import sys
import platform
if __name__ == "__main__":
name = sys.argv[1]
compilerPath = sys.argv[2]
if platform.system() == 'Windows':
compilerPath += '.exe'
includePathCount = int(sys.argv[3])
includePath = sys.argv[4:4+includePathCount]
defines = [v[len('-D'):] for v in sys.argv[4+includePathCount:] if v.startswith('-D')]
sdk_root = sys.argv[-1]
file = open(".vscode/c_cpp_properties.json", "w")
file.write('{\n')
file.write(' "configurations": [\n')
file.write(' {\n')
file.write(' "name": "' + name + '",\n')
file.write(' "includePath": [\n')
for i, path in enumerate(includePath):
file.write(' "' + path.replace(sdk_root, '${env:NRF_SDK}') + '"')
if i != includePathCount - 1:
file.write(',')
file.write('\n')
file.write(' ],\n')
file.write(' "defines": [\n')
definesCount = len(defines)
for i, define in enumerate(defines):
file.write(' "' + define + '"')
if i != definesCount - 1:
file.write(',')
file.write('\n')
file.write(' ],\n')
file.write(' "compilerPath": "${env:GNU_GCC}/arm-none-eabi-gcc.exe",\n')
file.write(' "cStandard": "c11",\n')
file.write(' "cppStandard": "c++17",\n')
file.write(' "intelliSenseMode": "gcc-arm"\n')
file.write(' }\n')
file.write(' ],\n')
file.write(' "version": 4\n')
file.write('}')
file.close()
exit(0)