mirror of
https://github.com/AFLplusplus/AFLplusplus.git
synced 2025-06-19 13:03:44 +00:00
custom format now search for the best clang-format version
This commit is contained in:
@ -124,7 +124,7 @@ RawStringFormats:
|
|||||||
CanonicalDelimiter: ''
|
CanonicalDelimiter: ''
|
||||||
BasedOnStyle: google
|
BasedOnStyle: google
|
||||||
ReflowComments: true
|
ReflowComments: true
|
||||||
SortIncludes: true
|
SortIncludes: false
|
||||||
SortUsingDeclarations: true
|
SortUsingDeclarations: true
|
||||||
SpaceAfterCStyleCast: false
|
SpaceAfterCStyleCast: false
|
||||||
SpaceAfterTemplateKeyword: true
|
SpaceAfterTemplateKeyword: true
|
||||||
|
@ -2,10 +2,34 @@
|
|||||||
|
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
|
import os
|
||||||
|
|
||||||
with open(".clang-format") as f:
|
with open(".clang-format") as f:
|
||||||
fmt = f.read()
|
fmt = f.read()
|
||||||
|
|
||||||
|
CLANG_FORMAT_BIN = os.getenv("CLANG_FORMAT_BIN")
|
||||||
|
if CLANG_FORMAT_BIN is None:
|
||||||
|
p = subprocess.Popen(["clang-format", "--version"], stdout=subprocess.PIPE)
|
||||||
|
o, _ = p.communicate()
|
||||||
|
o = str(o, "utf-8")
|
||||||
|
o = o[len("clang-format version "):].strip()
|
||||||
|
o = o[:o.find(".")]
|
||||||
|
o = int(o)
|
||||||
|
if o < 7:
|
||||||
|
if subprocess.call(['which', 'clang-format-7'], stdout=subprocess.PIPE) == 0:
|
||||||
|
CLANG_FORMAT_BIN = 'clang-format-7'
|
||||||
|
elif subprocess.call(['which', 'clang-format-8'], stdout=subprocess.PIPE) == 0:
|
||||||
|
CLANG_FORMAT_BIN = 'clang-format-8'
|
||||||
|
elif subprocess.call(['which', 'clang-format-9'], stdout=subprocess.PIPE) == 0:
|
||||||
|
CLANG_FORMAT_BIN = 'clang-format-9'
|
||||||
|
elif subprocess.call(['which', 'clang-format-10'], stdout=subprocess.PIPE) == 0:
|
||||||
|
CLANG_FORMAT_BIN = 'clang-format-10'
|
||||||
|
else:
|
||||||
|
print ("clang-format 7 or above is needed. Aborted.")
|
||||||
|
exit(1)
|
||||||
|
else:
|
||||||
|
CLANG_FORMAT_BIN = 'clang-format'
|
||||||
|
|
||||||
COLUMN_LIMIT = 80
|
COLUMN_LIMIT = 80
|
||||||
for line in fmt.split("\n"):
|
for line in fmt.split("\n"):
|
||||||
line = line.split(":")
|
line = line.split(":")
|
||||||
@ -13,7 +37,7 @@ for line in fmt.split("\n"):
|
|||||||
COLUMN_LIMIT = int(line[1].strip())
|
COLUMN_LIMIT = int(line[1].strip())
|
||||||
|
|
||||||
def custom_format(filename):
|
def custom_format(filename):
|
||||||
p = subprocess.Popen(['clang-format-7', filename], stdout=subprocess.PIPE)
|
p = subprocess.Popen([CLANG_FORMAT_BIN, filename], stdout=subprocess.PIPE)
|
||||||
src, _ = p.communicate()
|
src, _ = p.communicate()
|
||||||
src = str(src, "utf-8")
|
src = str(src, "utf-8")
|
||||||
|
|
||||||
@ -28,7 +52,7 @@ def custom_format(filename):
|
|||||||
i -= 1
|
i -= 1
|
||||||
elif line.startswith("#el") and macro_indent > 0:
|
elif line.startswith("#el") and macro_indent > 0:
|
||||||
i -= 1
|
i -= 1
|
||||||
elif line.startswith("#if") and not (line.startswith("#ifndef") and line.endswith("_H")):
|
elif line.startswith("#if") and not (line.startswith("#ifndef") and (line.endswith("_H") or line.endswith("H_"))):
|
||||||
macro_indent += 1
|
macro_indent += 1
|
||||||
r = "#" + (i * " ") + line[1:]
|
r = "#" + (i * " ") + line[1:]
|
||||||
if i != 0 and line.endswith("\\"):
|
if i != 0 and line.endswith("\\"):
|
||||||
|
Reference in New Issue
Block a user