Add includes2strings.py: Convenience script to extract required include paths for VS Code from the generated Makefile
parent
4517f7590f
commit
57217aef8f
|
@ -0,0 +1,59 @@
|
||||||
|
#!/bin/env python
|
||||||
|
import sys
|
||||||
|
|
||||||
|
def mkline(path):
|
||||||
|
return ('"' + path + '",')
|
||||||
|
|
||||||
|
|
||||||
|
def find_paths(line):
|
||||||
|
ret = []
|
||||||
|
|
||||||
|
while line.find("-I") >= 0:
|
||||||
|
|
||||||
|
# find the index of the next "-I" if there is one
|
||||||
|
idx = line.find("-I")
|
||||||
|
idx += 2
|
||||||
|
line = line[idx:]
|
||||||
|
|
||||||
|
# find the index of the next blank
|
||||||
|
idx = line.find(" ")
|
||||||
|
if idx >= 0:
|
||||||
|
# append to the return-list the string
|
||||||
|
# delimited by the blank
|
||||||
|
ret.append(line[:idx])
|
||||||
|
line = line[idx:]
|
||||||
|
else:
|
||||||
|
# if there is no blank until the end of line:
|
||||||
|
# just use the rest of the line
|
||||||
|
ret.append(line)
|
||||||
|
break
|
||||||
|
|
||||||
|
return ret
|
||||||
|
|
||||||
|
|
||||||
|
# read from stdin until EOF occurs
|
||||||
|
lines = sys.stdin.read().split("\n")
|
||||||
|
|
||||||
|
# filter empty lines
|
||||||
|
lines = [line for line in lines if len(line) > 0]
|
||||||
|
|
||||||
|
include_paths = []
|
||||||
|
for read_line in lines:
|
||||||
|
# convert the read lines to paths and convert them to quoted strings
|
||||||
|
paths = [mkline(p) for p in find_paths(read_line) if p not in ["", "."]]
|
||||||
|
for path in paths:
|
||||||
|
|
||||||
|
# if we don't have a duplicate... add the path
|
||||||
|
if path not in include_paths:
|
||||||
|
include_paths.append(path)
|
||||||
|
|
||||||
|
include_paths.sort()
|
||||||
|
if include_paths:
|
||||||
|
# if we have at least one element: remove the trailing comma from the last element
|
||||||
|
tmp = include_paths[:-1]
|
||||||
|
last = include_paths[-1][:-1]
|
||||||
|
tmp.append(last)
|
||||||
|
include_paths = tmp
|
||||||
|
|
||||||
|
for path in include_paths:
|
||||||
|
print(path)
|
Loading…
Reference in New Issue