# HG changeset patch # User Teemu Piippo # Date 1627368966 -10800 # Node ID 4e03b0e2a29f8601d152c7d307b3f2eeb9f9b343 # Parent c0d064521ee0ac23946353d5c552fa0181182582 added build-time test for line length diff -r c0d064521ee0 -r 4e03b0e2a29f CMakeLists.txt --- a/CMakeLists.txt Mon Jul 26 11:50:45 2021 +0300 +++ b/CMakeLists.txt Tue Jul 27 09:56:06 2021 +0300 @@ -212,6 +212,15 @@ set_source_files_properties (${CMAKE_BINARY_DIR}/configuration.cpp PROPERTIES GENERATED TRUE) set_property(SOURCE configuration.cpp PROPERTY SKIP_AUTOGEN ON) + +add_custom_target(linelength ALL + COMMAND python3 + "${CMAKE_SOURCE_DIR}/tools/linelength.py" + ${LDFORGE_SOURCES} + ${LDFORGE_HEADERS} + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}) +add_dependencies(ldforge linelength) + # Collect the current hg revision into hginfo.h add_custom_target(revision_check ALL COMMAND python3 "${CMAKE_SOURCE_DIR}/tools/updaterevision.py" --cwd "$(CMAKE_SOURCE_DIR)" hginfo.h diff -r c0d064521ee0 -r 4e03b0e2a29f tools/linelength.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/linelength.py Tue Jul 27 09:56:06 2021 +0300 @@ -0,0 +1,20 @@ +#!/usr/bin/env python3 +import sys +def check(filename): + with open(filename) as file: + for linenumber, line in enumerate(file, 1): + if line[-1] == '\n': + line = line[:-1] + line = str.replace(line, '\t', ' ' * 4) + if len(line) > 120: + print(str.format( + '{filename}:{linenumber}: warning: line length exceeds 120 characters', + filename = filename, + linenumber = linenumber + ), file = sys.stderr) +def main(): + for filename in sys.argv[1:]: + check(filename) + return 0 +if __name__ == '__main__': + sys.exit(main())