Refine travis check for duplicate includes

This partially reverts commit c36b720d00.
This commit is contained in:
MarcoFalke 2018-04-10 14:39:22 -04:00
parent 8d651ae320
commit fad0fc3c9a
No known key found for this signature in database
GPG key ID: CE2B75697E69A548
2 changed files with 1 additions and 13 deletions

View file

@ -19,17 +19,6 @@ for HEADER_FILE in $(filter_suffix h); do
echo echo
EXIT_CODE=1 EXIT_CODE=1
fi fi
CPP_FILE=${HEADER_FILE/%\.h/.cpp}
if [[ ! -e $CPP_FILE ]]; then
continue
fi
DUPLICATE_INCLUDES_IN_HEADER_AND_CPP_FILES=$(grep -hE "^#include " <(sort -u < "${HEADER_FILE}") <(sort -u < "${CPP_FILE}") | grep -E "^#include " | sort | uniq -d)
if [[ ${DUPLICATE_INCLUDES_IN_HEADER_AND_CPP_FILES} != "" ]]; then
echo "Include(s) from ${HEADER_FILE} duplicated in ${CPP_FILE}:"
echo "${DUPLICATE_INCLUDES_IN_HEADER_AND_CPP_FILES}"
echo
EXIT_CODE=1
fi
done done
for CPP_FILE in $(filter_suffix cpp); do for CPP_FILE in $(filter_suffix cpp); do
DUPLICATE_INCLUDES_IN_CPP_FILE=$(grep -E "^#include " < "${CPP_FILE}" | sort | uniq -d) DUPLICATE_INCLUDES_IN_CPP_FILE=$(grep -E "^#include " < "${CPP_FILE}" | sort | uniq -d)

View file

@ -569,8 +569,7 @@ Source code organization
- *Rationale*: Shorter and simpler header files are easier to read, and reduce compile time - *Rationale*: Shorter and simpler header files are easier to read, and reduce compile time
- Every `.cpp` and `.h` file should `#include` every header file it directly uses classes, functions or other - Every `.cpp` and `.h` file should `#include` every header file it directly uses classes, functions or other
definitions from, even if those headers are already included indirectly through other headers. One exception definitions from, even if those headers are already included indirectly through other headers.
is that a `.cpp` file does not need to re-include the includes already included in its corresponding `.h` file.
- *Rationale*: Excluding headers because they are already indirectly included results in compilation - *Rationale*: Excluding headers because they are already indirectly included results in compilation
failures when those indirect dependencies change. Furthermore, it obscures what the real code failures when those indirect dependencies change. Furthermore, it obscures what the real code