cppcheck.sh 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #!/bin/sh
  2. set -eu
  3. SCRIPT_DIR=$(dirname "$0")
  4. case $SCRIPT_DIR in
  5. "/"*)
  6. ;;
  7. ".")
  8. SCRIPT_DIR=$(pwd)
  9. ;;
  10. *)
  11. SCRIPT_DIR=$(pwd)/$(dirname "$0")
  12. ;;
  13. esac
  14. LOG_FILE=/tmp/cppcheck_qgis.txt
  15. rm -f ${LOG_FILE}
  16. echo "Checking ${SCRIPT_DIR}/../src ..."
  17. cppcheck --library=qt.cfg --inline-suppr \
  18. --template='{file}:{line},{severity},{id},{message}' \
  19. --enable=all --inconclusive --std=c++11 \
  20. -DPROJ_VERSION_MAJOR=6 \
  21. -USIP_RUN \
  22. -DSIP_TRANSFER= \
  23. -DSIP_TRANSFERTHIS= \
  24. -DSIP_INOUT= \
  25. -DSIP_OUT= \
  26. -DQ_FLAG= \
  27. -j $(nproc) \
  28. -isrc/qml \
  29. ${SCRIPT_DIR}/../src \
  30. >>${LOG_FILE} 2>&1 &
  31. PID=$!
  32. while kill -0 $PID 2>/dev/null; do
  33. printf "."
  34. sleep 1
  35. done
  36. echo " done"
  37. if ! wait $PID; then
  38. echo "cppcheck could not be started"
  39. exit 1
  40. fi
  41. ret_code=0
  42. for category in "error" "style" "performance" "warning" "clarifyCalculation" "portability"; do
  43. if grep "${category}," ${LOG_FILE} >/dev/null; then
  44. echo "ERROR: Issues in '${category}' category found:"
  45. grep "${category}," ${LOG_FILE}
  46. echo ""
  47. echo "${category} check failed !"
  48. ret_code=1
  49. fi
  50. done
  51. if [ ${ret_code} = 0 ]; then
  52. echo "cppcheck succeeded"
  53. fi
  54. exit ${ret_code}