Running cppcheck only for sources affected by local changes.
This commit is contained in:
+30
-12
@@ -454,21 +454,39 @@ all: clean $(JERRY_TARGETS)
|
|||||||
$(JERRY_TARGETS):
|
$(JERRY_TARGETS):
|
||||||
@rm -rf $(TARGET_DIR)
|
@rm -rf $(TARGET_DIR)
|
||||||
@mkdir -p $(TARGET_DIR)
|
@mkdir -p $(TARGET_DIR)
|
||||||
@changed_sources_and_headers_list=`comm -12 \
|
@source_and_headers_list=$$(for file in $(SOURCES_JERRY_C) $(MAIN_MODULE_SRC) $(SOURCES_JERRY_H) ; do echo $$file; done | sort); \
|
||||||
<(for file in $(SOURCES_JERRY_C) $(MAIN_MODULE_SRC) $(SOURCES_JERRY_H) ; do echo $$file; done | sort) \
|
changed_sources_and_headers_list=`comm -12 \
|
||||||
<(git diff --name-only origin/master | sort)`; \
|
<(echo "$$source_and_headers_list") \
|
||||||
echo "$$changed_sources_and_headers_list" | grep "\.h$$" > /dev/null; is_any_header_changed=$$?; \
|
<(git diff --name-only origin/master | sort)`; \
|
||||||
if [ $$is_any_header_changed -eq 0 ]; \
|
cpp_check_file_list=$$(echo "$$changed_sources_and_headers_list" | sort); \
|
||||||
then \
|
source_to_grep_for_includes="$$source_and_headers_list"; \
|
||||||
cpp_check_file_list="$(SOURCES_JERRY_C) $(MAIN_MODULE_SRC)"; \
|
while [[ "$$source_to_grep_for_includes" != "" ]]; \
|
||||||
else \
|
do \
|
||||||
cpp_check_file_list="$$changed_sources_and_headers_list"; \
|
new_cpp_check_file_list="$$cpp_check_file_list"; \
|
||||||
fi; \
|
source_to_grep_for_includes=$$(comm -23 \
|
||||||
|
<(echo "$$source_to_grep_for_includes") \
|
||||||
|
<(echo "$$cpp_check_file_list")); \
|
||||||
|
cpp_check_header_file_list=$$(echo "$$cpp_check_file_list" | grep "\.h$$"); \
|
||||||
|
for header in $$cpp_check_header_file_list; \
|
||||||
|
do \
|
||||||
|
header=$$(basename $$header); \
|
||||||
|
includers=$$(grep "#include \"$$header\"" $$source_to_grep_for_includes | cut -d ':' -f 1); \
|
||||||
|
new_cpp_check_file_list=$$(echo -e "$$new_cpp_check_file_list\n$$includers"); \
|
||||||
|
done; \
|
||||||
|
new_cpp_check_file_list=$$(echo "$$new_cpp_check_file_list" | sort | uniq); \
|
||||||
|
if [[ "$$cpp_check_file_list" == "$$new_cpp_check_file_list" ]]; \
|
||||||
|
then \
|
||||||
|
break; \
|
||||||
|
fi; \
|
||||||
|
cpp_check_file_list="$$new_cpp_check_file_list"; \
|
||||||
|
done; \
|
||||||
|
cpp_check_file_list=$$(echo "$$cpp_check_file_list" | grep -v "\.h$$"); \
|
||||||
[[ "$(OPTION_DISABLE_STATIC_ANALYSIS)" == "enable" ]] || [[ "$$cpp_check_file_list" == "" ]] || \
|
[[ "$(OPTION_DISABLE_STATIC_ANALYSIS)" == "enable" ]] || [[ "$$cpp_check_file_list" == "" ]] || \
|
||||||
./tools/cppcheck.sh -j8 $(DEFINES_JERRY) $$cpp_check_file_list $(INCLUDES_JERRY) $(INCLUDES_THIRDPARTY) \
|
./tools/cppcheck.sh -j8 $(DEFINES_JERRY) $$cpp_check_file_list $(INCLUDES_JERRY) $(INCLUDES_THIRDPARTY) \
|
||||||
--error-exitcode=1 --std=c99 --enable=all 1>/dev/null && \
|
--error-exitcode=1 --std=c99 --enable=all 1>/dev/null || exit $$?; \
|
||||||
[[ "$(OPTION_DISABLE_STATIC_ANALYSIS)" == "enable" ]] || [[ "$$changed_sources_and_headers_list" == "" ]] || \
|
[[ "$(OPTION_DISABLE_STATIC_ANALYSIS)" == "enable" ]] || [[ "$$changed_sources_and_headers_list" == "" ]] || \
|
||||||
vera++ -r ./tools/vera++ -p jerry $$changed_sources_and_headers_list -e --no-duplicate 1>$(TARGET_DIR)/vera.log
|
vera++ -r ./tools/vera++ -p jerry $$changed_sources_and_headers_list \
|
||||||
|
-e --no-duplicate 1>$(TARGET_DIR)/vera.log || exit $$?;
|
||||||
@mkdir -p $(TARGET_DIR)/obj
|
@mkdir -p $(TARGET_DIR)/obj
|
||||||
@source_index=0; \
|
@source_index=0; \
|
||||||
for jerry_src in $(SOURCES_JERRY) $(MAIN_MODULE_SRC); do \
|
for jerry_src in $(SOURCES_JERRY) $(MAIN_MODULE_SRC); do \
|
||||||
|
|||||||
Reference in New Issue
Block a user