cppcheck.sh 844 B

123456789101112131415161718192021222324252627282930313233
  1. #!/usr/bin/env bash
  2. # echo >>/tmp/cppcheck.log "cppcheck ${*}"
  3. cppcheck=$(which cppcheck 2>/dev/null || command -v cppcheck 2>/dev/null)
  4. [ -z "${cppcheck}" ] && echo >&2 "install cppcheck." && exit 1
  5. processors=$(grep -c ^processor /proc/cpuinfo)
  6. [ $(( processors )) -lt 1 ] && processors=1
  7. base="$(dirname "${0}")"
  8. [ "${base}" = "." ] && base="${PWD}"
  9. cd "${base}/src" || exit 1
  10. [ ! -d "cppcheck-build" ] && mkdir "cppcheck-build"
  11. file="${1}"
  12. shift
  13. ([ "${file}" = "${base}" ] || [ -z "${file}" ]) && file="${base}/src"
  14. "${cppcheck}" \
  15. -j ${processors} \
  16. --cppcheck-build-dir="cppcheck-build" \
  17. -I .. \
  18. --force \
  19. --enable=warning,performance,portability,information \
  20. --library=gnu \
  21. --library=posix \
  22. --suppress="unusedFunction:*" \
  23. --suppress="nullPointerRedundantCheck:*" \
  24. --suppress="readdirCalled:*" \
  25. "${file}" "${@}"