aboutsummaryrefslogtreecommitdiff
path: root/cmake/RunLint.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/RunLint.cmake')
-rw-r--r--cmake/RunLint.cmake25
1 files changed, 17 insertions, 8 deletions
diff --git a/cmake/RunLint.cmake b/cmake/RunLint.cmake
index a6d5a01b50..42ef7a86ad 100644
--- a/cmake/RunLint.cmake
+++ b/cmake/RunLint.cmake
@@ -1,18 +1,27 @@
get_filename_component(LINT_DIR ${LINT_DIR} ABSOLUTE)
get_filename_component(LINT_PREFIX ${LINT_DIR} PATH)
+set(LINT_SUPPRESS_FILE "${LINT_PREFIX}/errors.json")
+
file(GLOB_RECURSE LINT_FILES ${LINT_DIR}/*.c ${LINT_DIR}/*.h)
-if(LINT_IGNORE_FILE)
- file(READ ${LINT_IGNORE_FILE} LINT_IGNORED_FILES)
- string(REPLACE "\n" ";" LINT_IGNORED_FILES ${LINT_IGNORED_FILES})
- foreach(ignore_file ${LINT_IGNORED_FILES})
- list(REMOVE_ITEM LINT_FILES "${LINT_PREFIX}/${ignore_file}")
- endforeach()
+set(LINT_ARGS)
+
+if(LINT_SUPPRESS_URL)
+ file(DOWNLOAD ${LINT_SUPPRESS_URL} ${LINT_SUPPRESS_FILE})
+ list(APPEND LINT_ARGS "--suppress-errors=${LINT_SUPPRESS_FILE}")
endif()
+foreach(lint_file ${LINT_FILES})
+ file(RELATIVE_PATH lint_file "${LINT_PREFIX}" "${lint_file}")
+ list(APPEND LINT_ARGS "${lint_file}")
+endforeach()
+
execute_process(
- COMMAND ${LINT_PRG} ${LINT_FILES}
- RESULT_VARIABLE res)
+ COMMAND ${LINT_PRG} ${LINT_ARGS}
+ RESULT_VARIABLE res
+ WORKING_DIRECTORY "${LINT_PREFIX}")
+
+file(REMOVE ${LINT_SUPPRESS_FILE})
if(NOT res EQUAL 0)
message(FATAL_ERROR "Linting failed: ${res}.")