mirror of
https://github.com/isocpp/CppCoreGuidelines.git
synced 2024-03-22 13:30:58 +08:00
improve cpplint check by invoking python just once. Reduces time from 1m to 6s
This commit is contained in:
parent
3acba2ebae
commit
154dd24a54
|
@ -11,8 +11,6 @@ CXX_SRCS := $(wildcard *.cpp)
|
|||
CXX_LINT := ${CXX_SRCS:.cpp=.lint}
|
||||
|
||||
.PHONY: cpplint-all
|
||||
cpplint-all: $(CXX_LINT)
|
||||
|
||||
%.lint: %.cpp
|
||||
@python ../../python/cpplint.py --verbose=0 --linelength=100 --filter=-legal/copyright,-build/include_order,-build/c++11,-build/namespaces,-build/class,-build/include,-build/include_subdir,-readability/inheritance,-readability/function,-readability/casting,-readability/namespace,-readability/alt_tokens,-readability/braces,-readability/fn_size,-whitespace/comments,-whitespace/braces,-whitespace/empty_loop_body,-whitespace/indent,-whitespace/newline,-runtime/explicit,-runtime/arrays,-runtime/int,-runtime/references,-runtime/string,-runtime/operator $< || (cat $< | nl -ba | grep -v 'md-split' && false)
|
||||
cpplint-all:
|
||||
@python ../../python/cpplint_wrap.py *.cpp
|
||||
|
||||
|
|
32
scripts/python/cpplint_wrap.py
Normal file
32
scripts/python/cpplint_wrap.py
Normal file
|
@ -0,0 +1,32 @@
|
|||
## wraps local cpplint to produce verbose output without code harness
|
||||
import cpplint
|
||||
import sys
|
||||
|
||||
def main():
|
||||
FILTERS='cpplint --verbose=0 --linelength=100 --filter=-legal/copyright,-build/include_order,-build/c++11,-build/namespaces,-build/class,-build/include,-build/include_subdir,-readability/inheritance,-readability/function,-readability/casting,-readability/namespace,-readability/alt_tokens,-readability/braces,-readability/fn_size,-whitespace/comments,-whitespace/braces,-whitespace/empty_loop_body,-whitespace/indent,-whitespace/newline,-runtime/explicit,-runtime/arrays,-runtime/int,-runtime/references,-runtime/string,-runtime/operator'.split(' ')
|
||||
|
||||
result = False
|
||||
files = sys.argv[1:]
|
||||
for loopfile in files:
|
||||
newargs = FILTERS + [loopfile]
|
||||
sys.argv = newargs
|
||||
|
||||
try:
|
||||
cpplint.main()
|
||||
except SystemExit as e:
|
||||
last_result = e.args[0]
|
||||
result = result or last_result
|
||||
if (last_result):
|
||||
write_code_lines(loopfile)
|
||||
sys.exit(result)
|
||||
|
||||
def write_code_lines(filename):
|
||||
with open(filename, 'r') as f:
|
||||
linenum = 1
|
||||
for line in f:
|
||||
if (not '// by md-split' in line):
|
||||
sys.stdout.write('%3d %s' % (linenum, line))
|
||||
linenum += 1
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
Loading…
Reference in New Issue
Block a user