stamdStatic Markdown Page Generator |
git clone git://git.dimitrijedobrota.com/stamd.git |
Log | Files | Refs | README | LICENSE | HACKING | CONTRIBUTING | CODE_OF_CONDUCT | BUILDING |
lint.cmake (1305B)
0 cmake_minimum_required(VERSION 3.14) 1 2 macro(default name) 3 if(NOT DEFINED "${name}") 4 set("${name}" "${ARGN}") 5 endif() 6 endmacro() 7 8 default(FORMAT_COMMAND clang-format) 9 default( 10 PATTERNS 11 source/*.cpp source/*.hpp 12 include/*.hpp 13 test/*.cpp test/*.hpp 14 ) 15 default(FIX NO) 16 17 set(flag --output-replacements-xml) 18 set(args OUTPUT_VARIABLE output) 19 if(FIX) 20 set(flag -i) 21 set(args "") 22 endif() 23 24 file(GLOB_RECURSE files ${PATTERNS}) 25 set(badly_formatted "") 26 set(output "") 27 string(LENGTH "${CMAKE_SOURCE_DIR}/" path_prefix_length) 28 29 foreach(file IN LISTS files) 30 execute_process( 31 COMMAND "${FORMAT_COMMAND}" --style=file "${flag}" "${file}" 32 WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" 33 RESULT_VARIABLE result 34 ${args} 35 ) 36 if(NOT result EQUAL "0") 37 message(FATAL_ERROR "'${file}': formatter returned with ${result}") 38 endif() 39 if(NOT FIX AND output MATCHES "\n<replacement offset") 40 string(SUBSTRING "${file}" "${path_prefix_length}" -1 relative_file) 41 list(APPEND badly_formatted "${relative_file}") 42 endif() 43 set(output "") 44 endforeach() 45 46 if(NOT badly_formatted STREQUAL "") 47 list(JOIN badly_formatted "\n" bad_list) 48 message("The following files are badly formatted:\n\n${bad_list}\n") 49 message(FATAL_ERROR "Run again with FIX=YES to fix these files.") 50 endif()